WordPress 判断当前分类是否含有子分类

博主想实现在分类归档页面显示当前分类下的子分类列表,当然是要在有子分类的分类归档页面才会显示。可是不知道怎么判断当前分类是否含有子分类,在网上搜到的都是判断是否有父分类的方法,于是只好自己找 WordPress 的文档来找相关的函数。最后找到了“get_term_children( int $term_id, string $taxonomy )”函数来实现该功能,下面具体说说实现的方法。

get_term_children( int $term_id, string $taxonomy) 函数是用来将所有子项合并为其ID的单个数组。WordPress 官网给出的描述是:“此递归函数将$term的所有子项合并到相同的 term 的 ID数组中。仅适用于分层的分类法。如果$taxonomy中不存在$ term,则返回一个空数组。”我的理解是,category(分类)是一种 taxonomy,然后调用该函数,参数为该 category(分类)的 term_id 和  taxonomy,如果该分类含有子分类,那么该函数返回一个 term_id 数组,该数组中的元素是该分类的所有子分类的 term_id。而如果该分类没有子分类,则返回一个空的数组。

我的思路很简单,传递当前分类的 term_id 和 taxonomy 给该函数,判断返回的数组长度即可。如果为0,说明该分类没有子分类。具体的代码如下:

<?php
global $cat; //获取当前分类
$cat_term_id = get_category($cat)->term_id; // 得到该分类的 term_id
$cat_taxonomy = get_category($cat)->taxonomy; // 得到当前分类的 taxonomy
if(sizeof(get_term_children($cat_term_id,$cat_taxonomy)) != 0) // 判断该函数返回的数组的长度
{
	// 有子分类
}
else
{
	// 没有子分类
}
?> 

判断当前分类是否含有子分类的功能实现了就可以做一些有子分类的分类处理函数了,关于在分类归档页面显示分类下子分类的结构的功能我会在下一篇文章中写出来的。

参考链接:

get_term_children() | Function | WordPress Developer Resources

get_category() | Function | WordPress Developer Resources


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

微博 QQ 打赏 点赞 1

评论一下呗亲

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