无需插件实现 WordPress 面包屑导航

时间:2014-01-26所属栏目: WordPress教程 来源: 热度:

网站栏目布局在多条理的环境下,我们凡是会在顶部加上一个“当前位置”的路径导航,一样平常为从首页开始逐次递进到当前页面的链接。这种网站当前页面的路径导航有一个可爱的名字:面包屑(breadcrumb)。

面包屑导航最初出自于神话故事《奇幻丛林历险记》,故事的两个小主人公丢下一条面包屑路径,然后顺着这条路径回到了家中。就像这个故事一样,在互联网中,面包屑为用户提供一种追踪返回最初会见页面的方法,可以清楚的为客户指引进入网站内部也和首页之间的蹊径。

面包屑导航的浸染是汇报会见者他们今朝在网站中的位置以及怎样返回。给网站添加面包屑导航有利于进步访客体验和搜刮引擎优化,以是大大都网站都计划了面包屑导航。在wordpress中有许多优越的插件可以实现这一成果,可是许多人喜好节制插件的数目以节减资源晋升服从,那么就可以行使以下要领,在不消插件的环境下实现 wordpress 面包屑导航。

要领如下:

1、在wordpress博客当前主题的 functions.php 文件中添加以下代码:


//Get Breadcrumb
function get_breadcrumbs()
{
     global $wp_query; 
     if ( !is_home() ){ 
          // Start the UL
          echo '<ul >';
          // Add the Home link
          echo '<li><a href="'. get_settings('home') .'">'. get_bloginfo('name') .'</a></li>'; 
          if ( is_category() )
          {
               $catTitle = single_cat_title( "", false );
               $cat = get_cat_ID( $catTitle );
               echo "<li> » ". get_category_parents( $cat, TRUE, " » " ) ."</li>";
          }
          elseif ( is_archive() && !is_category() )
          {
               echo "<li> » Archives</li>";
          }
          elseif ( is_search() ) { 
               echo "<li> » Search Results</li>";
          }
          elseif ( is_404() )
          {
               echo "<li> » 404 Not Found</li>";
          }
          elseif ( is_single() )
          {
               $category = get_the_category();
               $category_id = get_cat_ID( $category[0]->cat_name ); 
               echo '<li> » '. get_category_parents( $category_id, TRUE, " » " );
               echo the_title('','', FALSE) ."</li>";
          }
          elseif ( is_page() )
          {
               $post = $wp_query->get_queried_object(); 
               if ( $post->post_parent == 0 ){ 
                    echo "<li> » ".the_title('','', FALSE)."</li>"; 
               } else {
                    $title = the_title('','', FALSE);
                    $ancestors = array_reverse( get_post_ancestors( $post->ID ) );
                    array_push($ancestors, $post->ID); 
                    foreach ( $ancestors as $ancestor ){
                         if( $ancestor != end($ancestors) ){
                              echo '<li> » <a href="'. get_permalink($ancestor) .'">'. strip_tags( apply_filters( 'single_post_title', get_the_title( $ancestor ) ) ) .'</a></li>';
                         } else {
                              echo '<li> » '. strip_tags( apply_filters( 'single_post_title', get_the_title( $ancestor ) ) ) .'</li>';
                         }
                    }
               }
          } 
          // End the UL
          echo "</ul>";
     }
}

标签:
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)