在 Wordpress 中,我希望获得一个类别的子类别的深度。
假设我有一个类别“祖父母”,它有一个子类别“父母”,而子类别“父母”又有一个子类别“孩子”。如何获得整数 2?
我想我可以检查“祖父母”是否有子类别,如果有,检查它们是否有子类别等,直到我达到 0。但这似乎是很多不必要的处理。
没有更优雅的方式吗?
在 Wordpress 中,我希望获得一个类别的子类别的深度。
假设我有一个类别“祖父母”,它有一个子类别“父母”,而子类别“父母”又有一个子类别“孩子”。如何获得整数 2?
我想我可以检查“祖父母”是否有子类别,如果有,检查它们是否有子类别等,直到我达到 0。但这似乎是很多不必要的处理。
没有更优雅的方式吗?
这里有一篇不错的博客文章 ,向您展示了如何构建一个可以让您深入了解类别的函数,但不仅...检查该函数有更多选项的页面。
编辑:这里的代码:
function get_depth($id = '', $depth = '', $i = 0) {
global $wpdb;
if($depth == '') {
if(is_page()) {
if($id == '') {
global $post;
$id = $post->ID;
}
$depth = $wpdb->get_var("SELECT post_parent FROM $wpdb->posts WHERE ID = '".$id."'");
return get_depth($id, $depth, $i);
}
elseif(is_category()) {
if($id == '') {
global $cat;
$id = $cat;
}
$depth = $wpdb->get_var("SELECT parent FROM $wpdb->term_taxonomy WHERE term_id = '".$id."'");
return get_depth($id, $depth, $i);
}
elseif(is_single()) {
if($id == '') {
$category = get_the_category();
$id = $category[0]->cat_ID;
}
$depth = $wpdb->get_var("SELECT parent FROM $wpdb->term_taxonomy WHERE term_id = '".$id."'");
return get_depth($id, $depth, $i);
}
}
elseif($depth == '0') {
return $i;
}
elseif(is_single() || is_category()) {
$depth = $wpdb->get_var("SELECT parent FROM $wpdb->term_taxonomy WHERE term_id = '".$depth."'");
$i++;
return get_depth($id, $depth, $i);
}
elseif(is_page()) {
$depth = $wpdb->get_var("SELECT post_parent FROM $wpdb->posts WHERE ID = '".$depth."'");
$i++;
return get_depth($id, $depth, $i);
}
}
试试这个:
$args = array(
'type' => 'post',
'child_of' => 0,
'parent' => 0,
'orderby' => 'name',
'order' => 'ASC',
'hide_empty' => 1,
'hierarchical' => 0,
'exclude' => '',
'include' => '',
'number' => '',
'taxonomy' => 'category',
'pad_counts' => false
);
$cats = get_categories( $args );
foreach( $cats as $cat) {
if($cat->parent == 0) {
$parent_cat = null;
$head = $cat->name;
$head_id = $cat->term_id;
}
echo "<ul><a class='parent-category' href=''>" . $head . "</a>";
wp_list_cats("sort_column=NAME&optioncount=0&hierarchical=1&hide_empty=0&child_of={$head_id}&show_option_none=");
echo "</ul>";
}
谢谢。
假设 $cat 是“祖父母”的类别 ID:
$number_of_subcategories = count(get_categories("echo=0&cat=" . $cat));
可以帮忙吗?
http://codex.wordpress.org/Function_Reference/get_categories