我在我的页面上有随机选择的帖子,通过new WP_Query
. 问题是\'posts_per_page\'
属性不起作用。这是我的代码:
<div id="featured">
<?php
$args = array(
\'post_type\' => \'post\',
\'orderby\' => \'rand\',
\'posts_per_page\' => 4,
\'nopaging\' => true,
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) {
echo \'<div style="table full">\';
while ( $the_query->have_posts() ) {
$the_query->the_post();
?>
<div class="featcell" style="background: url(<?php the_post_thumbnail_url(); ?>) center center">
<a class="featartlink" href="<?php echo get_permalink(); ?>"><?php echo get_the_title(); ?></a>
</div>
<?php
}
echo \'</div>\';
wp_reset_postdata();
}
?>
</div>
上面的脚本的结果是脚本从数据库加载所有帖子。脚本放在单贴子页面的贴子下。我做错了什么?看起来一切正常,但事实并非如此!谢谢你的帮助。
SO网友:X9DESIGN
我不知道为什么,但经过一些测试,我也尝试使用get_posts()
功能正常,现在一切正常。我只是想知道为什么new WP_Query
不想工作。
以下是正确的使用代码get_posts()
作用
<div id="featured">
<?php
global $post;
$args = array(
\'post_type\' => \'post\',
\'posts_per_page\' => 4,
\'orderby\' => \'rand\',
);
$rand_posts = get_posts( $args );
if ( $rand_posts ) :
echo \'<div style="table full">\';
foreach ( $rand_posts as $post ) : setup_postdata( $post ); ?>
<div class="featcell" style="background: url(<?php the_post_thumbnail_url(); ?>) center center">
<a class="featartlink" href="<?php echo get_permalink(); ?>"><?php echo get_the_title(); ?></a>
</div>
<?php endforeach; wp_reset_postdata();
echo \'</div>\';
endif;
?>
</div>