我来这篇文章是因为我在寻找代码。但这个明显的答案对我不再适用了。我写了一个函数来获取分配给帖子的最深层分类。
function post_deepest_level_cat($post_categories) {
foreach ($post_categories as $category) {
$cat_ids[] = $category->term_id;
}
$tree_args = array(
\'current_category\' => $cat_ids,
\'depth\' => 50,
\'hierarchical\' => true,
\'echo\' => 0,
);
$category_list = wp_list_categories($tree_args);
$dom = new DOMDocument;
@$dom->loadHTML($category_list);
$links = $dom->getElementsByTagName(\'a\');
$new_cat_array = array();
foreach ($links as $link) {
$menu = get_term_by(\'name\', $link->nodeValue, \'category\');
if (in_array($menu->term_id, $cat_ids)) {
$deepest_cat_id = $menu->term_id;
}
}
return $deepest_cat_id;
}
这里使用上述函数就是一个例子。
$post_categories = wp_get_post_terms(10, \'category\'); //All categories assigned to this post id "10"
$deeper_cat_id = post_deepest_level_cat($post_categories );
echo $deeper_cat_id; // will echo the id of deepest and last category of the current post.
这将在2020年有所帮助。如果你有更好的代码,请告诉我。谢谢