如何获取父页面(非递归)?

时间:2011-12-11 作者:calebds

我想获取所有直接作为HOME\\u ID.Per的子级的页面http://codex.wordpress.org/Function_Reference/get_pages#Parameters (请参阅“parent”参数),我认为这应该通过get\\u页面完成:

$top_pages = get_pages(array(\'parent\' => HOME_ID, \'sort_column\' => \'menu_order\'));
但这不会返回任何结果。如果我为HOME\\u ID插入0,我将返回结果。不用担心,因为我可以通过以下方式实现我想要的:

$menu_wp_query = new WP_Query();
$top_pages = $menu_wp_query->query(array(\'post_type\' => \'page\', \'post_parent\' => HOME_ID, \'orderby\' => \'menu_order\'));
但还是不舒服;这是虫子吗?使用WP 3.2.1谢谢。

3 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

假设通过“HOME\\u ID”,您指的是static Page used to display the Site Front Page, 那么您想使用get_option( \'front_page\' ) 获取ID 对于此页面:

<?php
$menu_wp_query_args = array(
    \'post_type\' => \'page\', 
    \'post_parent\' => get_option( \'front_page\' ), 
    \'orderby\' => \'menu_order\'
);
$new_wp_query = new WP_Query( $new_wp_query_args );
?>

SO网友:Rutwick Gangurde

假设您的主页标题为“主页”。使用此选项:

<?php

$home = get_page_by_title(\'Home\');
$home_children = get_posts(array(\'post_type\'=>\'page\', \'post_parent\'=>$home->ID));

echo "<pre>";
print_r($home_children);
echo "</pre>";    

?>
确保将确切的标题传递给get\\u page\\u by\\u title函数。

SO网友:Dan

在我使用的自定义模板页面中

query\\u posts(数组(\'post\\u parent\'=>6,\'post\\u type\'=>\'page\');

post\\u父项是根据特定页面的ID选择的,在本例中为6。。。至少对我有用。希望这有帮助。干杯

结束