Ygs

Feed Rss

在 WordPress 文章页显示当前位置

06.30.2010, WordPress, by , 1次阅读.

经过测试,我推荐另一个显示WordPress当前位置的方法,因为以下的方法只适合用于单独文章页面,当你使用二级分类时,会出现进入一级分类页面显示出某个二级分类的错误。我错了,两种方法都对一级目录都显示不正确(如果有二级目录的话)。

很多WordPress也提供了此功能,如果你的主题没有,不妨自己动手试试。

两个函数

get_the_categoryget_category_parents

get_the_category 的作用是获取文章的所属分类列表(如果属于多个分类的话),返回一个分类数组,函数原型如下:
get_the_category( $id = false )
参数$id是文章的post id,默认为当前文章的post id(用于Loop循环中)。

get_category_parents 的作用是获取指定分类id的所有父级分类,函数原型如下:
get_category_parents( $id, $link = false, $separator = ‘/’, $nicename = false, $visited = array() )

第一个参数$id是必须的,需要传入分类ID(category id),其它几个参数为可选
第二个参数$link标识是否需要超级链接,如果为true,返回的分类都带有链接,点击后显示分类下的所有文章。
第三个参数$separator是分类之间的分隔符,默认是“/”,你可以把它改成“>>”或者其它样式。
第四个参数$nicename标识是否显示分类别名,默认为false,即不显示别名。
第五个参数$visited是一个数组,保存已经遍历的分类,$visited数组中的分类不会被再次遍历。这里我们不需要传入这个参数。

如果你想进一步了解get_the_category和get_category_parents,可以参看它们的源代码:wp-includes\category-template.php

实现方法

编辑模板single.php文件,找到下列代码:

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>

加入以下代码:

<p>
当前位置: <a href="http://domety.com/" title="首页">首页</a>>><?php $categorys = get_the_category(); $category = $categorys[0];echo(get_category_parents($category->term_id,true,’>>’)); ?> 阅读正文
</p>

这里有个问题需要注意:在你写文章的时候,最好把文章只归为一个单独的分类中,因为这段代码会自动查找该分类的父级分类。如果你把文章归为不同的类别下面,这个方法也只显示其中的一个分类路径。

在 WordPress 文章页显示当前位置 有1条回应

  1. 谢谢分享,wordpress用得这么多,跟大家的分享有关。

    回复

发表评论

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

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>