You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Yoast过滤器修改wp_head输出 调整自定义meta标签位置

问题根源

你写的代码输出位置不对核心是两个原因:

  • WordPress钩子的优先级规则是数字越小执行时间越早,你给wpseo_head设置的优先级是2,远早于Yoast插件输出meta description标签的执行时机(Yoast内部meta description标签挂载在wpseo_head的优先级为6),所以自定义的keywords标签会先输出,跑到description标签前面的位置。
  • 原代码用esc_html转义keywords内容不合适,meta标签的content属性应该用esc_attr转义,避免内容里的引号、特殊字符破坏HTML结构。
最优解决方案

直接用Yoast官方预留的专有用法,钩子会精准在meta description标签输出完成后触发,不会因为Yoast版本迭代调整内部优先级出现错位问题,代码如下:

/* 在Yoast meta description标签后输出自定义keywords meta标签 */
function add_custom_meta_key(){
    if( is_single() ){
        $key = get_post_meta( get_the_ID(), 'keywords', true);
        if( ! empty( $key )  ){
            $meta_key = esc_attr( $key );
            echo '<meta name="keywords" content="' . $meta_key . '" />' . "\n";
        }
    }
}
add_action( 'wpseo_head_meta_description_after', 'add_custom_meta_key', 10 );
旧版Yoast兼容写法

如果你用的Yoast版本较老,没有wpseo_head_meta_description_after这个钩子,可以调整挂载到wpseo_head的优先级为7(仅比description输出的优先级6大1,刚好在description输出后立刻执行,不会跑到其他更靠后的meta标签后面):

add_action( 'wpseo_head', 'add_custom_meta_key', 7 );

注意:不要把优先级设置为10以上的数值,否则keywords标签会出现在og标签、canonical标签等其他Yoast输出的meta内容后方,无法紧接description标签。

内容的提问来源于stack exchange,提问作者SS Apps

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 17:27:52