Custom Yoast Breadcrumbs URL

时间:2019-03-20 作者:Jamiew

我正在尝试更改默认Yoast SEO面包屑中的链接。

当前面包屑为

Home / Projects / My Pretty Project
我想把“项目”及其链接改为“案例研究:

Home / Case Studies / My Pretty Project
这就是我一直试图使用wpseo\\u breadcrumb\\u输出挂钩实现的目标:

add_filter( \'wpseo_breadcrumb_output\', \'custom_wpseo_breadcrumb_output\' );

function custom_wpseo_breadcrumb_output( $output ){

if( is_single () ){
    $from = \'/projects/">Projects</a>\';
    $to = \'/case-studies/">Case Studies</a>\';
    $output = str_replace( $from, $to, $output );
}
return $output;
}
有什么帮助或建议可以让它工作吗?

非常感谢。

编辑还没拿到。

1 个回复
SO网友:WebElaine

这是一个不寻常的设置-Yoast通常识别正确的永久链接。您可能需要考虑更改设置自定义帖子类型的方式,以便它具有所需的名称和URL。您可能有两个指向相同内容的不同URL,这对于SEO是不可取的,有时会让最终用户感到困惑。

但是,要回答最初的问题,可以使用另一个名为wpseo_breadcrumb_links:

// Hook to the filter
add_filter(\'wpseo_breadcrumb_links\', \'wpse_332125_breadcrumbs\');
// $links are the current breadcrumbs
function wpse_332125_breadcrumbs($links) {
    // Use is_singular($post_type) to identify a single CPT
    // This assumes your CPT is called "project" - change it as needed
    if(is_singular(\'project\')) {
        // The first item in $links ($links[0]) is Home, so skip it
        // The second item in $links is Projects - we want to change that
        $links[1] = array(\'text\' => \'Case Studies\', \'url\' => \'/case-studies/\', \'allow_html\' => 1);
    }
    // Even if we didn\'t change anything, always return the breadcrumbs
    return $links;
}
您需要确保彻底测试所有内容,以确保原始链接和面包屑都按预期工作。希望这能帮助你和其他人,因为我花了很长时间才偶然发现这个几乎没有文档的过滤器!