在page.php上仅查询页面子项

时间:2012-01-06 11:51:17

标签: wordpress loops

我在wordpress中进行自定义查询,仅检索页面ID#20的子页面。

只有在ID #20 #95 #97

的网页上才能看到
<?php if (is_page(array('20','95','97'))) /* RIDERS */ { query_posts(array(

    'post_type' => 'page',

    'child_of' => 20,

    'order' => 'DESC'

)); } ?>

<?php if ( have_posts()) : while (have_posts()) : the_post(); ?>

    <!-- my loop stuff here -->          

<?php endwhile; endif; wp_reset_query(); ?>

我的第一个问题是这个循环在我的page.php模板文件上(主页循环外)。由于某种原因,页面数据正在我上面的查询中显示。如何收紧上面的查询,以免干扰页面上的其他循环。我想是因为我的page.php模板上有2 <?php if ( have_posts()) : while (have_posts()) : the_post(); ?>

我的下一个问题是,我是否正确地写了这个查询?因为它似乎列出了其他页面,而不仅仅是页面ID#20的子页面?

非常感谢您的帮助。

约什

1 个答案:

答案 0 :(得分:0)

这样的东西
<?php 
// just show this on your selected pages..
if (is_page(array('20','95','97'))) /* RIDERS */ {
  query_posts(array('post_type' => 
                    'page','child_of' => 20, 
                    'order' => 'DESC'
                    )
             ); 
    if ( have_posts()) : while (have_posts()) : the_post(); 
?>
    <!-- my loop stuff here -->
<?php 
    endwhile;
    else:
?>
    <h2>No Content</h2>
<?php
    endif;
}else{ 
//else just show normal post
    if ( have_posts()) : while (have_posts()) : the_post(); ?>
      <!-- my loop stuff here -->
<?php 
    endwhile;
    else:
?>
    <h2>No Content</h2>
<?php
    endif;
} //end of normal post 
?>
希望有帮助吗?中号..

回读帖子,我看到你试图使用query_posts函数查询它的页面,这取决于你想要在循环中显示的内容,你最好使用wp_list_pages()列出sub父母的页面。