想象一下,拥有子类别ANIMALS (ID 1)
且类别DOGS (ID 2)
的类别DOGS
具有子类别BIG DOGS (ID 3)
。然后你在BIG DOGS
类别中发布了“拉布拉多”(因此它在ID 3的类别中)。
现在,在类别DOGS
的网页上,您会显示包含此类别及其子类别的所有帖子,因此现在显示帖子“Labrador”。您需要找出当前显示的类别的ID。
因此,您正在浏览类别DOGS
的网页,因此您需要代码
get_the_category()
将返回ID 2.不幸的是,它返回上次添加的帖子的类别ID,因此您获得ID 3 :(
问题是,如何获取当前显示的类别的ID,该类别不是顶级父级,并且具有帖子的子类别?
答案 0 :(得分:0)
一个帖子可以有很多类别(在你的情况下也会有父猫。) - >所以,你不能有单一的答案。您可以检查它是否属于类别:
if (in_category('Cities')) {...}
或列出帖子所在的所有类别(然后检查):
$arrayListOfCategories = wp_get_post_categories( $post_id)
所有级别的树都有帖子,即使你只选择了最后一级, 也许你的解决方案是选择你要展示的树的哪个级别,这样就可以了,
$arrayListOfCategories = wp_get_post_categories($post_id);
foreach ($arrayListOfCategories as $category){
if (count(get_category_parents( $category, false, '>' )) > count($allchildren)) $allchildren = get_category_parents( $category, false, '>' ) ;
}
$catTreeLevels = explode(">", $allchildren);
echo $allchildren ." for ex. chosen 1: ".$catTreeLevels[1];
编号:
http://codex.wordpress.org/Function_Reference/in_category
http://codex.wordpress.org/Function_Reference/wp_get_post_categories
答案 1 :(得分:0)
最终我找到了一个解决方案 - 我没有检查类别的ID,但它是
single_cat_title
无论什么都返回正确的值(如果需要,可以用于查找类别ID)。
我希望它能帮助其他人处理同样的问题。