query\\u posts()总是显示一些内容吗?
不,至少对我来说不是,我已经尝试了你在我的孩子主题中发布的代码,但无法重现所描述的问题。
首先,我试着。。。
while ( have_posts() ) : the_post(); ?>
<!--- DO NOTHING ! -->
<?php endwhile ?>
。。什么都没有,所以我测试了。。
<?php
$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
query_posts("posts_per_page=1&paged=$paged");
global $more;
$more = 0;
while ( have_posts() ) : the_post(); ?>
<h1><?php the_title();?></h1>
<h3><?php the_content( __( \'\') ); ?></h3>
<?php endwhile ?>
。。产生了。。
<h1>Post title</h1>
<h3><p>post content</p></h3>
没有内容的错误段落。
如果要我猜这个问题,我会说有一个编码错误的过滤器或短代码在工作。最简单的隔离原因的方法(与任何WP故障排除一样)是禁用插件和/或切换主题,并缩小导致问题的范围。
UPDATE:
使用新的WP_Query
对象而不是query_posts
这应该可以解决问题。
function posts_shortcode( $atts ) {
extract( shortcode_atts( array(
), $atts ) );
global $more, $wp_query;
$args = array(
\'posts_per_page\' => 1,
\'paged\' => get_query_var(\'paged\')
);
$q = new WP_Query;
$q->query( $args );
// Backup $wp_query
$backup = $wp_query;
// Fill $wp_query with the custom query
$wp_query = $q;
// Do the loop
while ( $q->have_posts() ) :
$q->the_post();
$more = 0;
?>
<h1><?php the_title();?></h1>
<h3><?php the_content( __( \'\') ); ?></h3>
<?php
endwhile;
// Output page navi
wp_pagenavi();
// Restore $wp_query
$wp_query = $backup;
// Restores wp_query global and also resets postdata(may not be needed, but won\'t hurt)
wp_reset_query();
}
add_shortcode(\'posts\', \'posts_shortcode\');