web-dev-qa-db-fra.com

URL personnalisée de Yoast Breadcrumbs

J'essaie de changer le lien dans le fil d'Ariane Yoast SEO par défaut.

Le fil d'Ariane actuel est

Home / Projects / My Pretty Project

Et je veux changer les "Projets", et son lien, en "Etudes de cas:

Home / Case Studies / My Pretty Project

C'est ce que j'ai essayé de faire fonctionner, en utilisant le hook wpseo_breadcrumb_output:

add_filter( 'wpseo_breadcrumb_output', 'custom_wpseo_breadcrumb_output' );

function custom_wpseo_breadcrumb_output( $output ){

if( is_single () ){
    $from = '/projects/">Projects</a>';
    $to = '/case-studies/">Case Studies</a>';
    $output = str_replace( $from, $to, $output );
}
return $output;
}

Une aide ou des conseils pour que cela fonctionne?

Je vous remercie!

Edit .. je ne l'ai toujours pas.

2
Jamiew

C'est une configuration inhabituelle - Yoast reconnaît généralement les bons permaliens. Vous voudrez peut-être envisager de modifier la façon dont vous configurez votre type de publication personnalisé, afin qu'il ait les noms et URL souhaités pour commencer. Vous êtes susceptible d'avoir deux URL différentes pointant vers le même contenu, ce qui n'est pas souhaitable pour le référencement et parfois déroutant pour les utilisateurs finaux.

Cependant, pour répondre à votre question d'origine, vous pouvez utiliser un autre filtre appelé wpseo_breadcrumb_links:

// Hook to the filter
add_filter('wpseo_breadcrumb_links', 'wpse_332125_breadcrumbs');
// $links are the current breadcrumbs
function wpse_332125_breadcrumbs($links) {
    // Use is_singular($post_type) to identify a single CPT
    // This assumes your CPT is called "project" - change it as needed
    if(is_singular('project')) {
        // The first item in $links ($links[0]) is Home, so skip it
        // The second item in $links is Projects - we want to change that
        $links[1] = array('text' => 'Case Studies', 'url' => '/case-studies/', 'allow_html' => 1);
    }
    // Even if we didn't change anything, always return the breadcrumbs
    return $links;
}

Vous voudrez vous assurer de tout tester à fond, pour vous assurer que les liens d'origine et le fil d'Ariane fonctionnent tous comme prévu. J'espère que cela vous aide, vous et les autres, car il m'a fallu beaucoup de temps pour tomber sur ce filtre presque sans papiers!

3
WebElaine