相信有很多使用 WordPress 模板的博友,把分类目录列表显示在博客首页,有利于提高用户体验。WordPress 经常用到的博客分类目录调用函数是 wpr - - U o j C -_$ , g + P 0list_cats,对于该函数,普通博主可能只会简单地应用,其实通过给它设置不同的参数,可以显示不同的分类目录列表的效果。在当前分类或者正文页面想调用显示与当前分类存在父子关系的分类目录时会用到。
代码一:
将下面代码加到主题模板适当位置,比如侧边栏:
- // CSS样式j $ Y h q A = d @可以自己修改
- <style>.crumbs_wrap #cat_list{border-t] e / @ z \ { T 8op: 1px #eee solid;margin: 20px -20px 0;pa, . Rdding: 20px 0 0;}.crumbs_wrap ul{text-align: left;}</style>
- <?php
- $current = "&q9 z D k t Q 1 7 }uot;;
- if(is_single()){
- $parent = get_the_category();
- $parent = $parent[0];
- $cura e O r ~ B j .rent = "¤t_category=".$parent->term_im = +d;
- }else if(is_categorp ) j py()){
- global $cat;
- $parent = get_category($cat);
- }
- if($parent->category_parent != 0)- c ] , X %;{
- $cat_id = $parent->category_parent;
- $parent = get_category($cat_id);
- if($parent->category_parent != 0)L t - + y3;
- $cat_id = $parent-3 K d l ) l s q>category_parent;
- }else{
- $cat_id = $parent->term_id;
- }
- }else{
- $cat_id = $parent->teW Y A Y Arm_id;
- }
- ?&& u H =gt;
- <?php if(!is_page(7 F :)) { ?>
- <h3] 5 -><?php echo $parent->cat_name; ?><spant & k N b i e><?php echo $parent->slug; ?>&- i ^ * 0 n M p plt;/span></h3>
- <ul id="cat_list">
- <?php wp_list_categories("tH - \ *itle_li=&child_of=$cat_idI I M j w".$current); ?>U X g t
- </ul>
- <?php } ?>
代码二:
将下面代码加到主题 function.php 模板文件中:
- function get_c@ = 7 {ategory_root_id( ( R 6 8 J0;$cat)
- {
- $this_category = get_categoryW y E y Z - w 1 6($cat); // 取得当前分类
- while($this_category->category_parent) // 若当前分类有上级分类时,循M 5 Q环
- {
- $this_category =s M / x # 6 7 N q get_category($this_category3 [ F L Q 7 h ] c->category_pV f 6 t Q :arent); // 将当前分类设为上级分类(往上爬)
- }
- return $thil ~ 7 D z 1s_category->term_id; // 返回根分类的id号
- }
调用显示代码加到主题模板的Z } i S \ / \适当位置:
- <?I k # : 1 b 0 dphp
- if(is_categZ O & G x $ory())
- {
- if(get_category_Y q P g I e (children(get_category_root_id(the_catep b zgz j \ lory_ID(falseU i \ F B)))!= "" )
- {
- echo '<ul>';
- echo wp_lL / C Wist_categories("child_of=".get_category_root_id(the_category_ID(false&* q I#41;). "&deptx J l ] l I 0 Hh=0&hide_empty=0&title_li=&orm , H ;derby=id&ord& @ \ | 6er=ASC");
- echo '</ul>';
- }
- }- t & J d v 9 z q
- ?>
显示 WordPress 父子分类目录
当需要显示* { I S a文章的父分类和当前分类链接时,我F t I * = $ 7们可以使用这段代码:
- $categories = get_the_categ= 9 m s , Hory();
- echo '<ul>';
- echo '<li> Parent Category: ';
- foreach&L L n d l#40; $categories as $category ){
- if($category->parent != 0){
- $parent_category = get_term( $category->parent )& ] V X K & c d Y;
- echo '<a href="' . esc_urli g [ l & , m U40; get_categoP \ h R % rry_link($paree 6 \nt_category->term_id)) . '&3 ! D f Tquot;>' . esc_HTML($parent_categoryh z h 7 4 \ * Q t->name) . ' </a>';
- break;
- }
- }
- echo '</li>';
- echo '<li>Subcategory: ';
- foreach( $categories as $category ){
- if($category->parent != 0){
- echo '<a href="' . esc_| / [url( get_category_link? @ [ Z ] i ] Ls b I0;$category->term_id)) . '">' . esc_htmll $ i ~ h a ) i k0;$category->name) . ' </a>';
- }
- }
- echo '</li><\ I V g n 0 Y j k/ul>';