如何从Yoast面包屑中删除父类别

时间:2015-03-18 09:32:13

标签: php wordpress breadcrumbs

我有点困难,试图让这个链接/类别从我的bredcrumb路径中消失。

路径如下:home/customPostTypeCategory/subCategory/child/,所以我需要做的就是让customPostTypeCategory消失。

清楚地说,这是一个自定义帖子类型,使用类型 -plugin制作,而面包屑则使用 SEO by Yoast breadcrumbs

这可以通过CSS完成,但这是我愿意使用的最后一个解决方案。

任何线索,提示或技巧如何做到这一点?

谢谢!

3 个答案:

答案 0 :(得分:2)

add_filter( 'wpseo_breadcrumb_links', 'my_breadcrumb_filter_function' );
function my_breadcrumb_filter_function( $crumbs ) {
    foreach( $crumbs as $i => $crumb ) {
        $term = get_object_vars($crumb['term']);
       if( isset( $term['parent'] ) && $term['parent'] != 0 ) {

        } else {
            $new_crumbs[] = $crumbs[$i];
        }
    }
    return $new_crumbs;
}

答案 1 :(得分:1)

所以我通过使用 jQuery 包含 -selector解决了这个问题。

$( "#breadcrumbs a:contains('customPostTypeCategory')" ).removeAttr( "href" );

这显然只删除了链接,因此类别名称仍然存在。

如果应删除整个内容,则可以使用以下内容:

$( "#breadcrumbs a:contains('customPostTypeCategory')" ).css( "display", "none" );

这对我来说很有把握,但它不是我正在寻找和要求的解决方案。

答案 2 :(得分:0)

自定义帖子类型存在相同的问题。

查看数组的输出后,我发现array(1)是归档文件,我相信您所说的类别。

这对我有用:

function my_breadcrumb_filter_function( $crumbs ) {

    // replace "cpt" with your custom post type name 
    if(is_singular('cpt')) {
      $crumbs[1] = '';
    }
    return $crumbs;

}
add_filter( 'wpseo_breadcrumb_links', 'my_breadcrumb_filter_function' );