实际上制作面包屑导航的函数多种多样,既可以在functions.php文件中定义调用,也可以使用wordpress自带的函数制作一个简单的面包屑,下面给出我经常使用的方法。
如何输出一个文章的分类及分类的父级分类
我这里只给出最简单的解决方法也就是结果,不涉及函数详细介绍,如果你对wordpress内置函数感兴趣的话可以查看wordpress官网查看wordpress codex(wordpress宝典)
一、第一种方法
1. 还分为两种情况,在单页面或文章页面时,我们用
<?php $category = get_the_category(); $catid=$category[0]->cat_ID; //获取当前文章的第一个分类 echo get_category_parents($catid, TRUE, ' » '); //获取一个完整的url路径,包含分类及父分类 ?>
2. 在分类页我们就不用那么麻烦了(相对于单页面会多出一个”»”号),直接用:
<?php echo get_category_parents($cat, TRUE, ' » '); //$cat是分类页中存在的一个变量分类ID ?>
如果在分类页用第一种方法获取父分类的话,会出现下面的情况:
父分类下输出父分类,所以在分类页中用第二种方法就不会出现两个product这样的情况
二、第二种方法
1、在functions.php文件中添加以下代码:
<?php /************获取当前分类的url***********/ function the_category_link() { $category = get_the_category(); if($category) { $category_id = get_cat_id($category[0]->name); return get_category_link( $category_id ); } else{ return "#";} } /* * 获取当前文章所属第一个分类别名的函数 */ function the_category_name() { $category = get_the_category(); return ($category ? $category[0]->name : ""); } /*获得根基分类标题 */ function get_category_root_name($cat) { $this_category = get_category($cat); // 取得当前分类 while($this_category->category_parent) // 若当前分类有上级分类时,循环 { $this_category = get_category($this_category->category_parent); // 将当前分类设为上级分类(往上爬) return $this_category->name; // 返回根分类的id号 } } /*//获得根基分类连接*/ function get_category_root_link($cat) { $this_category = get_category($cat); // 取得当前分类 while($this_category->category_parent) // 若当前分类有上级分类时,循环 { $this_category = get_category($this_category->category_parent); // 将当前分类设为上级分类(往上爬) $category_id=$this_category->term_id; // 返回根分类的id号 return get_category_link( $category_id ); } } //获取当前文章的分类id function get_article_category_ID() { $category = get_the_category(); return $category[0]->cat_ID; } //获取当前文章的分类名 function get_article_category_name() { $category = get_the_category(); return $category[0]->name; } ?>
2、category分类引用
<div id="breadcrumbs"> <p id="content_p"><a href="<?php bloginfo('url');?>">Home</a> » <!--根分类名/begin--> <?php /*$cat是当前分类的ID*/ if(get_category_root_name($cat)) { echo "<a href='".get_category_root_link($cat)."'>".get_category_root_name($cat)."</a> » "; } else { echo "";} ?> <!--end--> <span><?php single_cat_title('','display'); /*获取分类名称函数*/?></span></p> </div>
3、single单页面引用
<div id="breadcrumbs"> <p id="content_p"><a href="<?php bloginfo('url');?>">Home</a> » <!--begin--> <?php if(get_category_root_name(get_article_category_ID())) { echo "<a href='".get_category_root_link(get_article_category_ID())."'>".get_category_root_name(get_article_category_ID())."</a> » "; } else { echo "";} ?> <!--end--> <a href="<?php echo the_category_link();?>"><?php echo the_category_name(); ?></a> » <span><?php the_title(); ?></span></p> </div>
上面引用时是根据我个人网站的整体框架,细节处还需根据个人的需求修改。