在自定义页面模板上运行具有自定义查询字符串的循环

时间:2012-03-07 作者:Pollux Khafra

我用一个模板创建了一个自定义页面,该模板只是一个带有自定义查询字符串的循环,用于来自特定类别的帖子列表,但当我查看页面时,它只显示一篇标题为页面标题的帖子。我不明白为什么它不返回帖子循环。我做错了什么?这是页面模板。

<?php
  /*
  Template Name: music videos
  */
?>
 <div class="panes-feed">
   <ul>
    <?php
     global $query_string;
     query_posts($query_string .\'&posts_per_page=10&cat=3&orderby=asc\'); ?> 
    <?php $i=0; while (have_posts()) : the_post(); $i++; ?>
      <li>
      <a style="display:block;height:100%" href="<?php the_permalink() ?>"  rel="bookmark" title="<?php _e( \'Permanent Link to\', \'buddypress\' ) ?> <?php the_title_attribute(); ?>">
           <?php
              foreach((get_the_category()) as $category) {
              echo "<div id=\'$category->slug\' style=\'margin-right:4px;position:absolute;right:0;display:block\' title=\'$category->cat_name\'></div>";
             }
           ?>
        <span class="video-thumb">
          <span class="video-clip">
            <span class="video-clip-inner">
               <?php $video_code = tube_getcustomfield(\'video_code\',get_the_ID()); if($video_code) { ?>
                <img src="<?php $thumb = get_youtube_screen_link( $video_code, \'default\' ) ?>" width="120" height="90" />
               <?php } else { ?>
                <?php echo_first_image ($post->ID); ?>
               <?php } ?>
               <span class="vertical-align"></span>
               </span></span></span>
                <div style="display:inline-block;width:225px">
                <h3 style="color:#e2e2e2"><?php the_title(); ?></h3> 
                <p><?php echo time_ago(); ?><?php _e( \' in\', \'buddypress\' ) ?> <span><?php $category = get_the_category(); echo $category[0]->cat_name; ?></span> </p>
                <?php if(function_exists(\'the_views\')) {  ?><p style="font-size:11px;margin-bottom:0px"><?php the_views(); ?> </p><?php } ?>
                </div>

     </a>
  </li>                                             
<?php if($i%1==0) : ?><div class="clear"></div><?php endif; ?>
<?php endwhile; wp_reset_query(); ?>
</ul>
</div>

1 个回复
最合适的回答,由SO网友:hannit cohen 整理而成

您应该从模板中删除$query\\u字符串。Quesry字符串包含特定于页面的参数。。。

您的循环应如下所示:

<?php
query_posts("posts_per_page=10&cat=3&orderby=asc&paged=".get_query_var(\'paged\'));
if (have_posts()):
    while(have_posts()):
       the_post();
       <!-- your custom data here -->
       the_title();
       the_content();
    endwhile;
endif;
?>

结束

相关推荐

simply loop through posts

我知道这是一个真正的新手问题,但我似乎无法从帖子中获得循环。它所做的只是从页面本身中提取。我制作了一个模板并添加了循环。<?php if( have_posts() ) { while( have_posts() ) { the_post(); ?> <h2><?php the_title(); ?></h2> <?php } } ?>