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