最好的方法是使用pre_get_posts
过滤器,用于更改主查询。这样,您就不会运行默认查询,也不会在其上运行自定义查询。您必须确定“如果”条件,以便仅对要影响的查询运行:
<?php
function wpse_366882_get_all_posts($query) {
// This will run for all main queries that are not in wp-admin.
// You may want "is_archive()", "is_page(\'slug\')" or some other condition.
if ( ! is_admin() && $query->is_main_query() ) {
// Setting to -1 shows all.
$query->set( \'posts_per_page\', -1 );
}
}
add_action( \'pre_get_posts\', \'wpse_366882_get_all_posts\' );
?>
您可以将此代码放置在自定义插件、自定义主题或子主题的
functions.php
文件