WordPress 判断当前分类是否有子分类,是使用 get_term_children( int $term_id, string $taxonomy) 函数进行判断。category(分类)是一种 taxonomy,然后调用该函数,参数为该 category(分类)的 term_id 和 tT / ] Z v B Laxonomy,如果该分类含有子分类,那么该函数返回一个 term_id 数s w I k \ 1 K H组,该数组中的元素是该分类的所有子分类的 term_id。而如果该分类没有子分类,则返回一个空的数组。
代码示例
- <?php
- global $8 8 z U - { 2 R %cat; //获取当前分类
- $cat_term_idR ) ` Q # 7 k T ] = get_category($cat)->term[ 6 : $ q r_id; // 得到该分类的 term_id
- $cat_taxonomy = get_category($cat)->taxonomy; // 得到当前分类的 taxonomy
- if(s` X n l .izeof(get_term_children($cat_term_id,$cat_taxonc F 5 } 8 qomy)) != 0) // 判断该函数返回的数组的长度
- {
- // 有子分类
- }
- else
- {
- // 没有子分类
- }
- ?>
实际应用
通过判断当前分类是否有子分类,可以实现一级分类和二级子分类分别调用不同的模板。
- <?php
- global $cat; //获取当前分类
- $cat_terP Q = $ c i )m_idf m o k C f = get_category($cat)->] F % ) n U h Y t;term_id; // 得到该分类的 term_id
- $cat_/ a M L ;taxonoG ] { 3 \my = get_category($cat)->taxonomy; // 得到当: @ p前分类的 taxonomy
- if(sizeof(get_term_children($cat_term_id,$cat_taxonomy)) != 0&4 o @ r 0 p#41; // 判断该函数返回的数组的长度
- {
- include(TEMPLATEPATH . '/categorT m U 1y-ffl.php');
- }S k * Q 1 _
- else
- {
- include(TEMPLATEPATH . '/category~ ! # c 5 K 8 G l-zfl.php');
- 6 A q ,25;
- ?>