调出WordPress父子级的面包屑导航

林继 WordPress 2,349 共写了646个字 (2011-06-09 18:23:56) 没有评论 打印 扫描二维码 百度已收录

是不是听这面包屑导航名字怪怪的?Don其实也有同感,不知道为何叫这名字,英文叫breadcrumbs吧!

什么是面包屑导航?

面包屑通常出现在每个页面顶部,无论复杂的站点也好,简单的博客wordpresss也好,都会出现在页面标题的上方或者是头部header的下方。它提供给用户返回之每一级页面的链接,让读者随时知道当前页面的路径,在层级架构中通常是这个页面的父级页面,而当前页面就是子级页面。

换一个说法,面包屑导航提供给访客读者回到网站首页或入口页面的一条直达路径,它们绝大部分看起来就像这样:

  1. 首页Don.GD » WordPress » WP主题模板

WordPress程序调用的代码如下:

在程序模板文件夹下打开functions.php文件,粘贴以下代码在有效位置。

  1. //Don.GD面包屑导航
  2. function don_breadcrumbs() {
  3.  
  4.   $delimiter = '»';
  5.   $name = '首页'; //text for the 'Home' link
  6.  
  7.   if ( !is_home() && !is_front_page() || is_paged() ) {
  8.  
  9.     global $post;
  10.     $home = get_bloginfo('url');
  11.     echo '<a href="' . $home . '">' . $name . '</a> ' . $delimiter . ' ';
  12.  
  13.     if ( is_category() ) {
  14.       global $wp_query;
  15.       $cat_obj = $wp_query->get_queried_object();
  16.       $thisCat = $cat_obj->term_id;
  17.       $thisCat = get_category($thisCat);
  18.       $parentCat = get_category($thisCat->parent);
  19.       if ($thisCat->parent != 0) echo(get_category_parents($parentCat, TRUE, ' ' . $delimiter . ' '));
  20.       single_cat_title();
  21.  
  22.     } elseif ( is_day() ) {
  23.       echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';
  24.       echo '<a href="' . get_month_link(get_the_time('Y'),get_the_time('m')) . '">' . get_the_time('F') . '</a> ' . $delimiter . ' ';
  25.       echo $currentBefore . get_the_time('d') . $currentAfter;
  26.  
  27.     } elseif ( is_month() ) {
  28.       echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';
  29.       echo $currentBefore . get_the_time('F') . $currentAfter;
  30.  
  31.     } elseif ( is_year() ) {
  32.       echo $currentBefore . get_the_time('Y') . $currentAfter;
  33.  
  34.     } elseif ( is_single() ) {
  35.       $cat = get_the_category(); $cat = $cat[0];
  36.       echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
  37.       echo $currentBefore;
  38.       the_title();
  39.       echo $currentAfter;
  40.  
  41.     } elseif ( is_page() && !$post->post_parent ) {
  42.       echo $currentBefore;
  43.       the_title();
  44.       echo $currentAfter;
  45.  
  46.     } elseif ( is_page() && $post->post_parent ) {
  47.       $parent_id  = $post->post_parent;
  48.       $breadcrumbs = array();
  49.       while ($parent_id) {
  50.         $page = get_page($parent_id);
  51.         $breadcrumbs[] = '<a href="' . get_permalink($page-ID) . '">' . get_the_title($page->ID) . '</a>';
  52.         $parent_id  = $page->post_parent;
  53.       }
  54.       $breadcrumbs = array_reverse($breadcrumbs);
  55.       foreach ($breadcrumbs as $crumb) echo $crumb . ' ' . $delimiter . ' ';
  56.       echo $currentBefore;
  57.       the_title();
  58.       echo $currentAfter;
  59.  
  60.     } elseif ( is_search() ) {
  61.       echo $currentBefore . '搜索 &#39;' . get_search_query() . '&#39;' . $currentAfter;
  62.  
  63.     } elseif ( is_tag() ) {
  64.       echo $currentBefore . '标签 &#39;';
  65.       single_tag_title();
  66.       echo '&#39;' . $currentAfter;
  67.  
  68.     } elseif ( is_author() ) {
  69.        global $author;
  70.       $userdata = get_userdata($author);
  71.       echo $currentBefore . '归档 ' . $userdata->display_name . $currentAfter;
  72.  
  73.     } elseif ( is_404() ) {
  74.       echo $currentBefore . '404错误' . $currentAfter;
  75.     }
  76.  
  77.     if ( get_query_var('paged') ) {
  78.       if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' (';
  79.       echo __('Page') . ' ' . get_query_var('paged');
  80.       if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')';
  81.     }
  82.   }
  83. }


然后在前台适当的位置调用函数:

  1. <?php if (function_exists('don_breadcrumbs')) don_breadcrumbs(); ?>

面包屑导航的一些好处

1、可以提供多路径的交互方式,方便访客读者浏览或跳转到网站的其它页面,在页面及分类多的网站中尤其有用,算是用户体验的一环吧。

2、面包屑导航信息结构对于网站做seo优化也有很大的好处,它可以更多地强调网站关键字,扩大关键字的范围和密度,从而达到更好的优化目的。

3、它从一个侧面展示了该信息集合的信息结构和集合方式,可以让访客读者只需花很少时间就能找到自己需要的东西。
本文来自:http://www.don.gd/mianbaoxiedaohang.html

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

< >