首页 > 解决方案 > 仅删除单页上的 Yoast Breadcrumb 最后一项

问题描述

我通过研究和尝试修改它得到了这段代码,但没有运气。我希望 yoast breamcrumbs 中的最后一项不只出现在单页上

 if ( is_single() ) {
 /*Remove Last item in Yoast SEO Breadcrumb */
 function adjust_single_breadcrumb( $link_output) {
 if(strpos( $link_output, 'breadcrumb_last' ) !== false ) {
    $link_output = '';
 }
 return $link_output;
 }
 add_filter('wpseo_breadcrumb_single_link', 'adjust_single_breadcrumb' ); 
 };

我尝试在函数和函数之间添加 if is single

 if(strpos( $link_output, 'breadcrumb_last' ) !== false && is_single) {

不幸的是,整个面包屑消失了。

标签: wordpressyoast

解决方案


使用此代码,您可以删除单页中的帖子标题。

add_filter('wpseo_breadcrumb_single_link_info', 'remove_post_title_wpseo_breadcrumb', 10, 3);
function remove_post_title_wpseo_breadcrumb($link_info, $index, $crumbs)
{
    if (is_singular() && isset($link_info['id']))
        return [];

    return $link_info;
}

更新: 在最新版本中,上面的代码不能完美运行。出于这个原因,我用正则表达式删除了最后一项:

function getBreadcrumb() {
    if ( function_exists( 'yoast_breadcrumb' ) ) {
        ob_start();
        yoast_breadcrumb( '<p id="breadcrumb" class="meta-info">', '</p>' );
        $breadcrumb = trim( ob_get_clean() );

        if ( is_singular() )
            $breadcrumb = trim( preg_replace( '/ ' . WPSEO_Options::get( 'breadcrumbs-sep' ) . ' <span class="breadcrumb_last" aria-current="page">(.*)<\/span>/i', '',
                $breadcrumb ) );

        echo $breadcrumb;
    }
}

并在您想要的任何地方调用该函数:

<?php getBreadcrumb() ?>

推荐阅读