Wordpress按递增顺序获取子页面

时间:2014-03-05 22:14:27

标签: wordpress

我尝试让以下函数输出数组中的所有子页面。一切正常,期望在ASC下订单。

$my_wp_query->query(array('post_type' => 'page')); // This gives me everything

$my_wp_query->query(array('post_type' => 'page', 'order' => 'ASC')); // This gives me nothing

我是WordPress的新手并尝试谷歌一小时,但我找不到。请帮助任何人。

由于

function get_children_pages_by_page_title( $page_title = '' ){

$my_wp_query = new WP_Query();

$all_wp_pages = $my_wp_query->query(array('post_type' => 'page', 'order' => 'ASC'));



$page_title = empty($page_title) ? get_page_by_title( ) : $page_title;

$portfolio =  get_page_by_title( $page_title );
$portfolio_children = get_page_children( $portfolio->ID, $all_wp_pages );

return $portfolio_children;
}

3 个答案:

答案 0 :(得分:3)

使用get_pages($args)尝试此操作,添加您的专栏'sort_column' => 'post_title'以按您希望

排序
function get_children_pages_by_page_title( $page_title = '' ){
$page_title = empty($page_title) ? get_page_by_title( ) : $page_title;
$portfolio =  get_page_by_title( $page_title );
$args=array(
'child_of'=>$portfolio->ID ,
'sort_order' => 'ASC',
'sort_column' => 'post_title',
'post_type' => 'page',
'post_status' => 'publish'
);
$portfolio_children=get_pages( $args );
return $portfolio_children;
}

答案 1 :(得分:0)

如果有人需要。 您需要订购所有页面,孩子将按此方式订购。

$my_wp_query = new WP_Query();
$all_wp_pages = $my_wp_query->query(array('post_type' => 'page', 'posts_per_page' => '-1', 'orderby' => 'menu_order', 'order' => 'ASC'));

$children_of_parent = get_page_children($parent_id, $all_wp_pages);

foreach($children_of_parent as $child) {
  echo $child->ID
}

答案 2 :(得分:0)

我不确定为什么@emilushi的回答没有赞成。它只是有效。

以下是我使用的内容:

$all_wp_pages = $my_wp_query->query(array('post_type' => 'page', 'posts_per_page' => '-1', 'orderby' => 'menu_order', 'order' => 'ASC'));
                $page_parent = wp_get_post_parent_id(get_the_ID()); // Get page parent ID. Will return 0 for parent pages.

//创建一个新的答案,因为我还没有评论。