1

我必须通过他们的 menu_order(仅限页面)从 wp_post 订购项目。我写了这一行:

$query = new WP_Query();
$all = $query -> query(array('post_type' => 'page', 'posts_per_page' => -1, 'orderby' => 'menu_order', 'order' => 'DESC'));
$children = get_page_children($id, $all);
foreach ($children as $child) {
 if ($child -> ID == get_the_id()) {
      echo '<li class="active"><a href="' . get_permalink($child -> ID) . '">' . $id . $child -> post_title . '</a></li>';

我看到了这些物品,但它们没有被订购。

谢谢。自由区

4

1 回答 1

1

我想说这个问题与您在循环使用对象之前传递$all对象的事实有关。get_page_children

您为什么不忘记 get_page_children 并将“post_parent”添加到您的 WP_Query 参数列表中?

$all = $query->query(array('post_type' => 'page', 'post_parent' => $id, 'posts_per_page' => -1, 'orderby' => 'menu_order', 'order' => 'DESC'))

Wordpress Stack Exchange 上的一个有用线程;

https://wordpress.stackexchange.com/questions/35123/wp-get-all-the-sub-pages-of-the-parent-using-wp-query

编辑。

扩展评论。有时对 menu_order 有混淆——它与 wp_nav_menus 无关,而是与 Page Attributes Order 输入框有关,如下所示;

在此处输入图像描述

于 2013-02-05T10:29:25.860 回答