wordpress函数制作面包屑导航

实际上制作面包屑导航的函数多种多样,既可以在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, ' &raquo; '); //获取一个完整的url路径,包含分类及父分类
?>

2. 在分类页我们就不用那么麻烦了(相对于单页面会多出一个”»”号),直接用:

<?php
echo get_category_parents($cat, TRUE, ' &raquo; '); //$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> &raquo;
<!--根分类名/begin-->
<?php
/*$cat是当前分类的ID*/
if(get_category_root_name($cat))
{	echo "<a href='".get_category_root_link($cat)."'>".get_category_root_name($cat)."</a> &raquo; "; }
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> &raquo;
<!--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> &raquo; "; }
else
{ echo "";}
?>
<!--end-->
<a href="<?php echo the_category_link();?>"><?php echo the_category_name(); ?></a> &raquo;
<span><?php the_title(); ?></span></p>
</div>

上面引用时是根据我个人网站的整体框架,细节处还需根据个人的需求修改。