我正在寻找一个类别的子类别的深度。
假设我有一个类别“祖父母”,它有一个子类别“父母”,而父类别又有一个子类别“孩子”。如何得到整数2?
我想我可以检查“祖父母”是否有子类别,如果有,检查他们是否有子类别,等等,直到我达到0。但这似乎是很多不必要的处理。
难道没有更优雅的方式吗?
我正在寻找一个类别的子类别的深度。
假设我有一个类别“祖父母”,它有一个子类别“父母”,而父类别又有一个子类别“孩子”。如何得到整数2?
我想我可以检查“祖父母”是否有子类别,如果有,检查他们是否有子类别,等等,直到我达到0。但这似乎是很多不必要的处理。
难道没有更优雅的方式吗?
我会这样做:
获取all 子类别(包括空,分层设置)作为数组检索PHP中数组的深度(这部分是taken (but adapted) from here)总之,以下代码被捆绑到一个函数中,但当然可以直接在模板文件中的某个位置使用:
function get_category_depth($id = 0) {
$args = array(
\'child_of\' => $id,
\'hide_empty\' => 0,
\'hierarchical\' => 1,
);
$categories = get_categories($args)
if (empty($categories))
return 0;
$depth = 1;
$lines = explode("\\n", print_r($categories, true));
foreach ($lines as $line)
$depth = max(
$depth,
(strlen($line) - strlen(ltrim($line))) / 4
);
return ceil(($depth - 1) / 2) + 1;
} // function get_category_depth
请注意,我没有对此进行测试。昨天一些很棒的人帮我解决了这个问题templates for custom taxonomy terms. 现在我有一个相关的问题。同样,我在函数中设置了一个自定义的post类型。php称为“研究”我有一个叫做“分类”的自定义分类法根据该分类法,我有以下术语:oldresearch(父项)--子项1---子项2我需要在这个术语“旧研究”下的所有单页和子目录中使用一个模板。我已经有一项研究了。其他地方正在使用的php。所以这不是我的首选。有什么想法吗?请详细说明,因为我是PHP新手-抱歉。哈哈,提前谢谢!