Wordpress-获取当前类别的父项
在category.php中,如何针对具有父类别的类别进行测试 如果父类别是A,子类别是B,并且用户加载类别B的URL,我希望能够测试它是否有父类别A,如果有,则运行代码 我找到了get_category_parents标记,但它似乎返回的是链接列表而不是数组:Wordpress-获取当前类别的父项,wordpress,categories,Wordpress,Categories,在category.php中,如何针对具有父类别的类别进行测试 如果父类别是A,子类别是B,并且用户加载类别B的URL,我希望能够测试它是否有父类别A,如果有,则运行代码 我找到了get_category_parents标记,但它似乎返回的是链接列表而不是数组: get_category_parents($cat, TRUE, ', ')); 即使我得到了这个数组,我也不确定要针对它测试什么php函数(PHPNoob) 谢谢 首先,您必须获取当前类别的id: $category_id = ge
get_category_parents($cat, TRUE, ', '));
即使我得到了这个数组,我也不确定要针对它测试什么php函数(PHPNoob)
谢谢 首先,您必须获取当前类别的id:
$category_id = get_query_var('cat');
然后,您可以进行数据库查询以查看它是否有父项:
$parent = $wpdb->get_var("SELECT parent FROM ".$wpdb->prefix."term_taxonomy WHERE term_id = $category_id");
如果它有一个,$parent将包含一个高于父id的级别,并且它的值自然应该大于0,因此您可以如下所示进行检查:
<?php if ($parent > 0 ) : ?>
// do something
<?php endif; ?>
如果您想看到有更多的高级父级,您可以使用父级id执行相同的操作(db查询),甚至可以编写一个递归函数,直到达到顶级。正如我在源代码中看到的,内置的get_category_parents()函数就是这样做的
HTH您可以使用该功能检查一个类别是否是另一个类别的子类别。例如,要检查当前类别是否是名为“blog”类别的子类别,请执行以下操作:
cat_is_ancestor_of(get_cat_id('blog'), get_query_var('cat'))
查看参考页,当您将第二个参数设置为
TRUE
时,您正在请求链接
你应该做:
get_category_parents($cat, FALSE, ', '));
我还建议不要使用空格作为分隔符,因为以后可能需要修剪这些空格。在
category.php
(或任何单个类别模板)中,您可以使用全局变量$cat来检索当前类别的ID。因此,您可以选中cat是(ID,$cat)的祖先代码>使用ID通常是更好的方法,因为它们在重命名名称/slug/任何东西时都不会更改。
get_category_parents($cat, FALSE, ', '));