web-dev-qa-db-ja.com

Yoastブレッドクラムにページを追加する方法

私はYoasts Wordpress SEOを使用しています、そして私は私のブレッドクラムを設定しました。問題は、私のページ設定が次のようになっていることです。

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

ブレッドクラムは次のように表示されます。

Home / Category / Page Title

こんな風に見せてほしい。

Home/ Blog / Category / Page Title

これは可能ですか?

8
Lucky Luke

これがあなたがする必要があることの一般的な原則です:

  1. wpseo_breadcrumb_linksまたはwp_seo_get_bc_ancestorsAPIフィルターにフックします
  2. $links を使用して、WordPress SEO Breadcrumb array_splice配列に Blog を追加します。

これをあなたのテーマのfunctions.phpに入れてください。

/**
 * 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;
}

注:サイトやニーズに合わせてコードを更新する必要があるかもしれませんが、一般的な考え方は変わりません。

25
rjb