web-dev-qa-db-fra.com

Comment ajouter une page à la chapelure Yoast

J'utilise Yoasts Wordpress SEO et j'ai configuré ma chapelure. Le problème est que ma mise en page est s suit.

/
/about
/blog - On this page I query the posts and display them. The posts themselves have nothing before them in the URL.

Le fil d'Ariane indique ce qui suit.

Home / Category / Page Title

Je veux que ça se passe comme ça.

Home/ Blog / Category / Page Title

Est-ce possible?

8
Lucky Luke

Voici le principe général de ce que vous devez faire:

  1. Accrochez-vous au wpseo_breadcrumb_links ou au wp_seo_get_bc_ancestorsFiltres de l'API .
  2. Ajoutez votre Blog dans le tableau WordPress SEO Breadcrumb $links en utilisant array_splice .

Placez ceci dans le functions.php de votre thème:

/**
 * Conditionally Override Yoast SEO Breadcrumb Trail
 * http://plugins.svn.wordpress.org/wordpress-seo/trunk/frontend/class-breadcrumbs.php
 * -----------------------------------------------------------------------------------
 */

add_filter( 'wpseo_breadcrumb_links', 'wpse_100012_override_yoast_breadcrumb_trail' );

function wpse_100012_override_yoast_breadcrumb_trail( $links ) {
    global $post;

    if ( is_home() || is_singular( 'post' ) || is_archive() ) {
        $breadcrumb[] = array(
            'url' => get_permalink( get_option( 'page_for_posts' ) ),
            'text' => 'Blog',
        );

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

    return $links;
}

Remarque: vous devrez peut-être mettre à jour le code spécifique à votre site ou à vos besoins, mais l'idée générale reste la même.

25
rjb