按MENU_ORDER列出CPT,子项紧随父项之后

时间:2013-05-08 作者:Pedro Boutros Saïkali

我注册了自定义帖子类型drawer 我的帖子是使用menu_order. 每个抽屉可以是另一个抽屉的子抽屉,在多个深度上(父>子>子的子>子的子……你知道了;))。

到目前为止,我的代码如下所示:

$args = array(
    \'numberposts\'     => -1,
    \'orderby\'         => \'menu_order\',
    \'order\'           => \'DESC\',
    \'post_type\'       => \'drawer\',
    \'post_status\'     => \'publish\',
);
$drawers = get_posts($args);

foreach ($drawers as $drawer){
    $title = get_the_title($drawer->ID);
    echo $title . \' (parent : \' . $drawer->post_parent . \')<br>\';
}
但我希望在返回父帖子后立即获取父帖子的子帖子,并使用menu_order 值也用于对这些子级进行排序。

我明白了全部逻辑:我应该在我使用的地方创建一个“嵌套”循环get_posts 使用parent 设置参数以验证(&P);获取已排序的子级。但是,因为我对这种父母/孩子的行为有很多深入的了解,我认为这不是最有效的方法,我也不想创建一个“嵌套”循环。

要形象化我需要什么:看这张图片http://img.saika.li/Opkq 了解我想要得到的(蓝色头衔)与我现在得到的相比的真正顺序。

我希望有人能找到解决办法!

1 个回复
SO网友:Rarst

掌握这种深度嵌套树的实现的问题是,最好递归地解决它——您的代码应该输出post,然后输出子级,并对每个子级无休止地重复该过程,直到它用完。

然而,在您花时间定制实现之前,您可以尝试查看WP提供的现有功能。例如wp_list_pages() 可以真正用于任意帖子类型,应该可以为您处理层次结构输出。

结束

相关推荐

Sort categories by meta value

如何制作一个类别列表,每个类别中有4篇最后的帖子,其中每个类别都按meta\\u值排序。例如,不按meta\\u值排序的模板是http://pastebin.com/AeH6vx9b它仅显示父类别。几天来,我在搜索与类别相关的额外字段,但找不到可行的内容。This is my best search result. 这跟我有什么关系?我不明白。有可能做我想做的事吗?