WordPress首页近期文章查询设置无法修改问题求助
解决方案
先排查首页模板的查询类型
你用的「Posts/Image at left」模板大概率是用了自定义WP_Query而非主查询,这就是为什么你的pre_get_posts代码执行了但没生效——主查询的修改影响不到自定义查询。找到该模板对应的PHP文件(比如front-page.php或主题自定义模板文件),查找是否有类似new WP_Query()的代码块。修改自定义查询参数
如果找到自定义查询,直接在参数数组里调整:
$args = array( 'posts_per_page' => 2, // 改为你需要的2篇 'orderby' => 'date', // 按日期排序 'order' => 'DESC' // 最新在前,改成ASC就是最早在前 ); $custom_query = new WP_Query( $args );
- 若确为要修改主查询,完善条件判断
如果模板用的是主查询,那给你的代码加上首页限定,避免影响其他页面:
function be_change_event_posts_per_page( $query ) { if( $query->is_main_query() && !is_admin() && (is_front_page() || is_home()) ) { $query->set( 'posts_per_page', 2 ); $query->set( 'order', 'DESC' ); // 按需设置排序方向 } } add_action( 'pre_get_posts', 'be_change_event_posts_per_page' );
- 排查冲突
如果以上都没用,暂时禁用所有插件测试,或者检查主题其他函数文件是否有覆盖查询参数的代码,有些主题会内置文章数量控制的选项,也可以去主题设置面板看看有没有相关开关。
内容的提问来源于stack exchange,提问作者maxet24
相关产品推荐
相关产品推荐

