自定义查询找不到页面

时间:2012-04-17 作者:josh

我不认为自己是一个新手,我以前有过所有页面的循环工作,但现在我的页面模板上的一个自定义循环(用作网站的索引页面)不会显示“页面”列表。

<?php get_header(); ?>

<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?> // first I want to call the information for the page itself -- i\'ve tried removing this and it has no effect.
<div class="about"><?php the_content(); ?></div>


<?php endwhile; 
wp_reset_query(); 

// end frontpage while ?>

    <div id="featured" >  
        <ul class="ui-tabs-nav">  
            <li class="ui-tabs-nav-item ui-tabs-selected" id="nav-fragment-1"><a href="#fragment-1"><span>About the film festival</span></a></li>  


        <?php    
        $get_pages =    ( //the loop to get all the pages on the site
                array(

                    \'post_type\' => \'page\',
                    \'posts_per_page\' => -1,

                ));
                query_posts( $get_pages );

        if ( have_posts() ) while ( have_posts() ) : the_post(); 
?> 
//这是我希望在每个页面上执行的操作,但除了页面之外,其他任何页面都会显示此操作

 <li class="ui-tabs-nav-item" id="nav-fragment-2"><a href="#fragment-2"><span><?php the_title() ?></span></a></li>  

    <?php endwhile; //end pages while
                wp_reset_query(); 
                wp_reset_postdata();     ?>
我是否错过了一些重要的东西?有什么愚蠢的错误吗?我现在不知所措。在这里可能有用的任何东西。

2 个回复
最合适的回答,由SO网友:Chris_O 整理而成

这不是使用query\\u帖子的地方。仅当需要更改主循环时,才应使用query\\u posts。也不需要在两个循环上重置查询和缺少的endif。

我会使用get_pages 而不是运行新的WP\\u查询

$pages = get_pages();
foreach ( $pages as $page ) { ?>

<li class="ui-tabs-nav-item" id="nav-fragment-2"><a href="#fragment-2"><span><?php echo $page->post_title; ?></span></a></li> 

    <?php }

SO网友:Boone Gorges

没有什么东西会突然对我大错特错(虽然你在一些地方对括号的使用有点参差不齐),但使用query_posts() 像这样(一页两次wp_reset_query()), 可能是某种相关的全球冲突导致了你的问题。尝试使用WP_Query 而是:

$page_args = array(
    \'post_type\' => \'page\',
    \'posts_per_page\' => -1,
));
$page_query = new WP_Query( $page_args );

if ( $page_query->have_posts() ) :
    while ( $page_query->have_posts() ) :
        the_post();
        ?>
         <li class="ui-tabs-nav-item" id="nav-fragment-2"><a href="#fragment-2"><span><?php the_title() ?></span></a></li>
        <?php
    endwhile;
endif;

结束