wordpress - 仅删除单页上的 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) {
不幸的是,整个面包屑消失了。
解决方案
使用此代码,您可以删除单页中的帖子标题。
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() ?>
推荐阅读
- wolkenkit - Wolkenkit 服务的可扩展性
- python - 如何将我的 Rest Api 服务器与我的 Web Socket 服务器通信
- visual-studio-2017 - 如何将 QT5 中的 *.dll 添加/链接到 Visual Studio 2017
- c# - 从数组属性中分配随机文本框
- cimg - CIMG 的外部库错误
- javascript - 如何在nodejs中从mysql显示数据到html div?
- angular - 如何在 Angular 中使用 MatOptgroup 来实现自动完成?
- sql - 如何在不将 TABLE1 中的列设置为特定的单个选择语句的情况下使用 TABLE2 中的值更新 TABLE1?
- php - AJAX 给出的结果与 MySQL 不同
- java - 检测应用程序是否从另一个活动返回到 MainActivity