PHP wordpress 获取类别对象的多维数组

标签 php wordpress categories

我正在尝试将我的 wordpress 上的所有类别作为类别类型对象的分层多维数组。 wordpress 中有 2 个函数可以满足我的要求,但不完全是:

1) get_categories() - 这个确实返回类别对象数组,这很好,但是数组是扁平的,其中没有区分哪个类别是父类别或哪个类别是子类别。

2) wp_list_categories() - 它可以完整地返回类别,但问题是返回值是 html,我需要类别仍然是对象。

例如,如果我有以下 3 棵树作为我的无父类别:

/*
tree_stump

tree1
    branch1

tree2
    branch2
        twig2
            leaves2
            flowers2
            fruits2
*/

我正在尝试获取可能类似于以下内容的返回值:

$cat_tree=array( 1=>$tree_stump,2=>array(1=>$tree1,2=>$branch1),3=>array(1=>$tree2,2=>array(1=>$branch2,2=>array($twig2,$leaves2,$flowers2,$fruits2  ) ) ) );

其中 multi dim 数组的每个成员仍然是一个对象,并且在所有子数组中,第一个是其余成员的父级。我想这需要一些递归的东西——让我紧张的东西!

不确定我是否有道理,如果我需要更清楚,请告诉我.. 感谢阅读。

最佳答案

这是我的版本,假设 $categories 是 get_categories() 的输出,但它们的顺序无关紧要。

$cats_tree = get_cat_tree(0,$categories);
function get_cat_tree($parent,$categories) {
    $result = array();
    foreach($categories as $category){
        if ($parent == $category->category_parent) {
            $category->children = get_cat_tree($category->cat_ID,$categories);
            $result[] = $category;
        }
    }
    return $result;
}

关于PHP wordpress 获取类别对象的多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6865207/

相关文章:

ios:是否可以在运行时从同一类的两个定义类别中选择一个

php - 如何在表格中显示多个类别的产品

php - 直接链接到第一个子类别的 Opencart 1.5.5.1 标题菜单

php - 使用 lamp-server^ 包安装 LAMP 与单独安装 Apache、PHP、MySQL 的优缺点

php - 找不到类 'Db'

javascript - AngularJS XMLHttpRequest 无法加载 X。不存在 'Access-Control-Allow-Origin' header

php - 如何显示来自特定类别的一个特定 WP 帖子(提取的 ID)

php - 使用 PHP 从 MySQL 选择并回显单个字段

javascript - 如何将javascript变量值分配给php变量

mysql - 如何从 WordPress 数据库中检索值?