如何将页面添加到Yoast面包屑


9

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

这可能吗?

Answers:


27

这是您需要做的一般原则:

  1. 插入wpseo_breadcrumb_linkswp_seo_get_bc_ancestors API过滤器
  2. 使用将您的Blog添加到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;
}

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


在更改了我的条件,URL和文本值以满足我的需求之后,此方法非常有效。谢谢。
crdunst 2014年

奇怪的。此代码将“类别”替换为“博客”,而不是之前添加。
Michael Rogers

修正:在我的情况下,它不确定为什么需要“ 2,-3”而不是“ 1,-2”,但是可以那样工作。
Michael Rogers

@rjb谢谢,非常有用的代码!您知道如何在页面上添加页面而不是删除页面吗?
Cray
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.