仅在WordPress搜索结果页显示自定义长度摘要失效问题
解决WordPress搜索结果页摘要长度不生效的问题
你的代码失效的核心原因是:在functions.php加载阶段,WordPress还未完成当前页面的查询初始化,is_search()此时返回false,导致整个过滤器(add_filter)根本没被注册,自然无法修改摘要长度。
正确的做法是把页面判断逻辑移到过滤器函数内部,等excerpt_length钩子触发时(此时页面查询已完成)再判断是否为搜索页:
function custom_excerpt_length( $length ) { // 仅在搜索结果页将摘要长度设为400词 if (is_search()) { return 400; } // 其他页面保持原有摘要长度 return $length; } add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
补充说明
- 优先级设为
999是合理的,能确保你的自定义逻辑覆盖WordPress默认或其他主题/插件的设置;若仍不生效,可尝试调高优先级数值(比如1000)。
内容的提问来源于stack exchange,提问作者Jeroen
相关产品推荐
相关产品推荐

