如何在WordPress归档页面显示所有文章?代码调试求助
在WordPress分类归档页面显示所有文章的正确方法
你之前的代码问题出在$query->set()的调用方式上:
- 第一次代码错误:把方法参数写成了数组语法,
$query->set()需要传入两个独立参数(参数名和对应值),不是数组格式。 - 第二次代码错误:参数顺序完全颠倒,把要设置的值当成了参数名,逻辑完全错误。
另外要注意,pre_get_posts钩子会影响所有查询(包括后台和页面内的自定义查询),所以必须加上is_main_query()判断,只修改页面的主查询。
正确代码如下:
add_action('pre_get_posts', 'show_all_posts_on_category_archive'); function show_all_posts_on_category_archive( $query ) { // 仅对分类归档的主查询生效 if ( $query->is_category() && $query->is_main_query() ) { $query->set( 'posts_per_page', -1 ); } }
把这段代码添加到你的主题functions.php文件中,分类归档页面就会显示所有文章了。
内容的提问来源于stack exchange,提问作者Thomas Burrows
相关产品推荐
相关产品推荐

