WordPress默认情况下只加载10篇帖子。这可以在管理员的“设置->阅读”下更改,然后在“博客页面最多显示”旁边设置金额。
您可以通过几种方式在自定义查询中覆盖该数字,但我首先建议不要使用query_posts() (阅读链接了解原因)赞成get_posts() 甚至更好WP_Query() 并通过相应的arguments
//create a query with WP_Query
$posts = new WP_Query(array(
\'post-type\' => \'post\', //this can be post, page or a custom post type
\'posts_per_page\' => -1, //this can be any number or settting to -1 will give you all the posts
//add whatever other parameters you need
));
//modify the loop slightly
if ($posts->have_posts()) :
echo \'<ul>\';
// Start the Loop.
while ($posts->have_posts()) : $posts->the_post();
/*
* Include the post format-specific template for the content. If you want to
* use this in a child theme, then include a file called called content-___.php
* (where ___ is the post format) and that will be used instead.
*/
echo \'<li>\';
get_template_part(\'contentArchive\', get_post_format());
echo \'</li>\';
endwhile;
echo \'</ul>\';
else :
// If no content, include the "No posts found" template.
get_template_part(\'content\', \'none\');
endif;
?>
另一种方法是
pre_get_posts 使用操作可以劫持循环并在从数据库中提取帖子之前更改查询。
您需要通过使用以下函数进行检查,以确保只影响该归档页面的主循环is_main_query() 以及该页底部提到的其他内容。
将此代码放入函数中。php文件-您需要进行一些测试,以确保它不会影响其他页面/循环,但这是一般的想法。
function wst_157845( $query ) {
if ( !is_admin() && $query->is_main_query() && is_archive() )
$query->set( \'posts_per_page\', -1 );
}
}
add_action( \'pre_get_posts\', \'wst_157845\');
希望这有帮助!