2012-01-06 66 views
0

我在wordpress中進行自定義查詢,只檢索頁面ID#20的子頁面。只查詢頁面的孩子,在page.php

而且只待與該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的子頁面?

很多感謝您的幫助。

喬希

回答

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 
?> 

希望幫助? M ..

只是回頭看過帖子,我看到它的頁面試圖使用query_posts函數進行查詢,具體取決於您要在循環中顯示的內容,最好使用wp_list_pages()列出子項父母的頁面。

+0

感謝烈士 - 這工作。 – Joshc 2012-01-14 14:32:39