Home>WordPress>Yoast Breadcrumbs 文章页面删除标题

Yoast Breadcrumbs是一款很出色的面包屑插件,它可以在文章、分类、归档、搜索等页面显示导航,SEO 的效果也非常好。

装上该插件后,搜索引擎也有很好的理解和展示,

我博客上安装的是作者的另外一款很有名的插件 WordPress SEO by Yoast,默认集成了Yoast Breadcrumbs的功能。

但是,该插件有一个不足的地方是,在文章页面中,仍然会在导航栏上显示标题,这样标题就在两处地方重复显示了,那么如何解决这个问题,下面我们介绍两种方法。

方法一

在 functions.php 文件中增加以下代码(来自 How to remove page title from breadcrumb):

<?php 
if(function_exists('yoast_breadcrumb')){ 
    $opt = get_option("wpseo_internallinks"); 
    $sep =( isset($opt['breadcrumbs-sep'])&& $opt['breadcrumbs-sep']!='')? $opt['breadcrumbs-sep']:'»'; 
    $breadcrumbs = yoast_breadcrumb('','',false); 
    $linksArr = split($sep, $breadcrumbs); 
    array_pop($linksArr); 
    echo '<nav id="breadcrumbs">'.implode($sep,$linksArr).'</nav>';}?>

这种方法比较暴力,它通过预设的分隔符将生成的内容切分,然后删除最后一个元素。最好配合 is_single 一起使用,否则会影响分类、归档等页面。

方法二

今天翻了下插件的代码,发现有提供一个 Filter 来控制导航中显示的链接(在文件 class-breadcrumbs.php 中):

function breadcrumb( $before ='', $after ='', $display =true){// ... 省略
   $links = apply_filters('wpseo_breadcrumb_links', $links );// ... 省略}

$links 数组中的每一个元素都是导航栏中的每一个链接的描述:

*Each element of the links array can either have one of these keys:*"id"for post types;*"ptarchive"for a post type archive;*"term"for a taxonomy term.*If either of these 3 are set, the url and text are retrieved.Ifnot, url and text have to be set.*

所以我们可以看元素是否包含 id 属性来判断,它是否是一个文章页面。

下面的实现的代码,放到 functions.php 文件中即可:

/* 
 * Customize breadcrumb links
 */function dangopress_customize_breadcrumb($links){
    $my_links = array();foreach($links as $index => $value){if(isset($value['id'])){// find a single post, end..
            $my_links[]= array('text'=>'当前页面');break;}    

        $my_links[]= $value;}return $my_links;}
add_filter('wpseo_breadcrumb_links','dangopress_customize_breadcrumb',10,1);function dangopress_breadcrumb(){if(!function_exists('yoast_breadcrumb')|| is_home()|| is_page())return;

    yoast_breadcrumb('<div id="site-breadcrumbs">','</div>');}

然后在需要显示的地方加上:

<?php dangopress_breadcrumb();?>

大功告成。

 

 转载请注明转自: 团子的小窝 , 本文固定链接: Yoast Breadcrumbs 文章页面删除标题

Leave a comment

  • 0.0

  • Minimum 6 characters
Skip to toolbar