Modifier le fil d’Ariane de Yoast SEO

Modifier le fil d’Ariane de Yoast SEO
SEO Lecture 4 minutes • 25 février 2022

L'extension Yoast SEO permet nativement beaucoup de paramétrages depuis l'interface d'administration WordPress. Cependant, on peut lui trouver des limites lorsqu'on développe un site à l'arborescence plus complexe, avec parfois le besoin de personnaliser le fil d'Ariane - ou breadcrumb- pour certains contenus en particuliers : pages, articles, taxonomies ou CPT.

Changer le fil d'Ariane pour un Article WordPress de base

Dans cet exemple, je souhaite que dans mon Article que j'appellerai "Nouvelle succursale", le fil d'Ariane s'affiche ainsi :

Accueil > Actualités > Nouvelle succursale

Et que Accueil et Actualités soient cliquables, renvoyant respectivement vers leur page.
Voici donc le code à insérer dans le fichier functions.php de votre thème.

<?php
function yoast_seo_breadcrumb_append_link( $links ) {
    global $post;

    if ( is_single ( 123 ) ) {
        $breadcrumb[] = array(
            'url' => site_url( '/actualites/' ),
            'text' => 'Actualités',
        );

        array_splice( $links, 1, -2, $breadcrumb );
    }

    return $links;
}
add_filter( 'wpseo_breadcrumb_links', 'yoast_seo_breadcrumb_append_link' );

J'utilise la fonction is_single accompagnée d'un nombre qui est l'identifiant unique de l'article concerné (ici 123 pour mon article "Nouvelle succursale").

Avec 'url' j'indique le lien de ma page intermédiaire Actualités et avec 'text' le texte à afficher pour ce lien.

Changer le fil d'Ariane pour un Article Personnalisé / Custom Post Type (CPT)

Dans cet exemple je souhaite que dans mon Article Personnalisé (CPT) nommé "Voiture", il existe un article que j'appellerai "Peugeot 208", et que dans celui-ci le fil d'Ariane s'affiche ainsi :

Accueil > Annonces > Peugeot 208

Et que Accueil et Annonces soient cliquables, renvoyant respectivement vers leur page.
Voici donc le code à insérer dans le fichier functions.php de votre thème.

<?php
function yoast_seo_breadcrumb_append_link( $links ) {
    global $post;

    if ( is_singular ( 'voiture' ) ) {
        $breadcrumb[] = array(
            'url' => site_url( '/annonces/' ),
            'text' => 'Annonces',
        );

        array_splice( $links, 1, -2, $breadcrumb );
    }

    return $links;
}
add_filter( 'wpseo_breadcrumb_links', 'yoast_seo_breadcrumb_append_link' );

Dans ce cas ou mon article est un CPT j'utilise la fonction is_singular accompagnée de son slug qui est unique (ici 'voiture' ).
Par exemple, j'ai créé un CPT "voiture", alors 'voiture' est son slug.

Avec 'url' j'indique le lien de ma page intermédiaire Annonces et avec 'text' le texte à afficher pour ce lien.

Changer le fil d'Ariane pour une Page

Dans cet exemple, je souhaite que ma page que j'appellerai "Avec des oeufs", le fil d'Ariane s'affiche ainsi :

Accueil > Recettes simples > Avec des oeufs

Et que Accueil et Recettes simples soient cliquables, renvoyant respectivement vers leur page.
Voici donc le code à insérer dans le fichier functions.php de votre thème.

<?php
function yoast_seo_breadcrumb_append_link( $links ) {
    global $post;

    if ( is_page ( 456 ) ) {
        $breadcrumb[] = array(
            'url' => site_url( '/recettes-simples/' ),
            'text' => 'Recettes simples',
        );

        array_splice( $links, 1, -2, $breadcrumb );
    }

    return $links;
}
add_filter( 'wpseo_breadcrumb_links', 'yoast_seo_breadcrumb_append_link' );

J'utilise la fonction is_page accompagnée d'un nombre qui est l'identifiant unique de la page concerné (ici 456 pour moa page "Avec des oeufs").

Avec 'url' j'indique le lien de ma page intermédiaire Recettes simples et avec 'text' le texte à afficher pour ce lien.

Changer le fil d'Ariane pour une Taxonomy

Dans cet exemple, je souhaite que ma Taxonomy que j'appellerai "Pays" ayant notamment le Term "Portugual", le fil d'Ariane s'affiche ainsi :

Accueil > Meilleurs voyages > Portugal

Et que Accueil et Meilleurs voyages soient cliquables, renvoyant respectivement vers leur page.
Voici donc le code à insérer dans le fichier functions.php de votre thème.

<?php
function yoast_seo_breadcrumb_append_link( $links ) {
    global $post;

    if ( is_tax ( 'pays' ) ) {
        $breadcrumb[] = array(
            'url' => site_url( '/meilleurs-voyages/' ),
            'text' => 'Meilleurs voyages',
        );

        array_splice( $links, 1, -2, $breadcrumb );
    }

    return $links;
}
add_filter( 'wpseo_breadcrumb_links', 'yoast_seo_breadcrumb_append_link' );

Dans ce cas je désigne les Terms appartenants à la Taxonomy 'Pays', j'utilise la fonction is_tax accompagnée du slug unique de cette Taxonomy (ici 'pays' ).
Ainsi, toutes les Archives de Taxonomy 'Pays' (par exemple : France, Portugual, Espagne...) afficheront dans leur fil d'Ariane le texte "Meilleurs voyages" avec le lien vers cette page des meilleurs voyages.

Sources : GitHub officiel de Yoast SEO


Si cet article vous a aidé, lâchez votre plus bel applaudissement en remerciement ! 🤗