WordPress 分类归档页面显示该分类的子分类结构

我的博客中有很多分级的分类结构,于是就想在一个分类的归档页面头部显示出该分类的子分类结构,当然只有在该分类有子分类的时候才会显示。如何判断一个分类是否有子分类的方法在上一篇文章中我已经分享过:WordPress 判断当前分类是否含有子分类 。网上的很多教程都是显示父分类的结构,但针对我的需求并没有相关的方法  :(懒得理) ,这里呢我就分享一下我使用的方法,效果就像这篇文章的首图那样咯。

二话不说先给出代码(PHP语言):

if(is_category()){
	global $cat;
	$cat_id = get_category($cat)->term_id;
	$cat_taxonomy = get_category($cat)->taxonomy;
	if(sizeof(get_term_children($cat_id,$cat_taxonomy)) != 0)
	    wp_list_categories("child_of=$cat_id&hierarchical=1&depth=0&hide_empty=0&orderby=id&order=ASC&show_count=1&title_li=此分类下的子分类列表:");
}

将这部分代码复制粘贴到你使用的主题目录下的  archive.php 文件中的显示分类描述的图像部分的“<?php” 和 “?>” 中即可,例如我用的是 twentyseventeen 主题,在主题目录下的 archive.php 文件中有这样的代码:

<?php
the_archive_title( '<h1 class="page-title">', '</h1>' ); // 显示分类页面的标题
the_archive_description( '<div class="taxonomy-description">', '</div>' );  // 显示分类的图像描述
// 此处是代码段要插入的位置
?>

那我就可以将刚才的代码复制到这个位置了。当然你要根据自己使用的主题和要显示列表的位置来插入代码了。

代码说明

这段代码主要就是用到 WordPress 提供的 wp_list_categories( string|array $args = '' ) 函数。该函数的官方文档在这里。该函数的功能就是显示或获得HTML形态的分类列表。这个函数的参数是一些对返回结果的选项设置,如下:

$ args

string | array (可选) 可选的数组或者字符串参数。

  • ‘child_of’ 
    (int)用于查找某个父分类的子分类的父分类 term ID。请参阅 get_terms()。默认值为0。
  • ‘current_category’ 
    (int | array)应该获得 ‘current-cat’ 类的分类 ID或分类 ID数组。默认值为 0。
  • ‘depth’ 
    (int)分类深度。用于制表符缩进。默认值为0。
  • ‘echo’ 
    (bool | int) True表示直接 echo(输出) 检索后的列表结果,false表示返回列表结果不做输出。默认1(True)。
  • ‘exclude’ 
    (array | string)要排除的 term ID,数组或逗号/空格分隔的字符串形式。如果 $hierarchical 为 True,$exclude则也将排除 term的后代; 看$exclude_tree。请参阅get_terms()
  • ‘exclude_tree’ 
    (array | string)要排除的 term ID 及其后代,数组或逗号/空格分隔的字符串形式。请参阅get_terms()
  • ‘feed’ 
    (字符串)用于 feed 订阅链接的文本。默认’Feed for all posts filed under [cat name]’。
  • ‘feed_image’ 
    (字符串)用于 feed 链接的图像的URL。
  • ‘feed_type’ 
    (字符串) Feed类型。用于构建 Feed链接。请参阅get_term_feed_link()。默认空字符串(默认Feed)。
  • ‘hide_empty’ 
    (bool | int)是否隐藏没有文章的分类。默认1。
  • ‘hide_title_if_empty’ 
    (bool)如果列表中没有分类(即该分类没有子分类),是否隐藏列表标题元素 $title_li。默认为 false(将始终显示标题)。
  • ‘hierarchical’ 
    (bool)是否包含具有非空子分类的分类。请参阅 get_terms()。默认为 true。
  • ‘order’ 
    (字符串)分类列表排序的方向。接受 ‘ASC’(升序)或’DESC’(降序)。默认’ASC’。
  • ‘orderby’ 
    (字符串)用于排序分类列表的列。默认是 ‘ 分类名 ‘。
  • ‘separator’ 
    (字符串)链接之间的分隔符。默认'<br />’。
  • ‘show_count’ 
    (bool | int)是否显示该类别中的文章数量。默认值为0(不显示)。
  • ‘show_option_all’ 
    (字符串)显示用于所有分类的文本的内容。
  • ‘show_option_none’ 
    (字符串)用于‘无分类’选项的文本。默认’无分类’。
  • ‘style’ 
    (字符串)用于显示分类列表的样式。如果是’list’,则分类将作为无序列表输出。如果保留为空或其他值,则分类将以<br>标记分隔输出。默认’list’。
  • ‘taxonomy’ 
    (字符串)分类法名称。默认’分类’。
  • ‘title_li’ 
    (字符串)用于列表标题<li>元素的文本。传递空字符串以禁用。默认’分类’。
  • ‘use_desc_for_title’ 
    (bool | int)是否使用分类的描述作为链接的 title 属性。默认1。

大家可以根据这些参数来自定义显示的列表,建议在自定义前先看懂每个参数的意义。


版权说明:
作品 sunriseydy 采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
文章内容如未说明均为原创,欢迎转载,但请注明原作者(sunriseydy)和原文链接(https://blog.sunriseydy.top/technology/server-blog/wordpress/wordpress-category-list-sub_category/)
部分来自互联网的文章,如有侵权,请联系我,24小时内删除,谢谢

手机打开扫一扫即可访问本页面

感谢您的支持,SunriseYDY 会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

日出一点一 | 在探索的路上永不止步

分享到微博 分享到QQ 微信赞赏 在手机上阅读 点赞 0

评论一下呗亲

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