问题描述

我正在使用 Yoast 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

这可能吗?

最佳解决方案

以下是您需要做的一般原则:

  1. 钩入 wpseo_breadcrumb_linkswp_seo_get_bc_ancestors API filters

  2. 将您的博客添加到 WordPress SEO 面包屑 $links 阵列中,使用 array_splice

将其放在主题的 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;
}

注意:您可能需要更新特定于您网站或需求的代码,但总体思路保持不变。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。