如何通过代码移除WordPress中Yoast SEO的author meta标签
Yoast SEO从14.0版本重构了元数据输出逻辑,网上流传的大部分旧代码片段因为钩子失效、优先级不对都没法正常生效,插件后台也没有提供单独关闭这个author元标签的可视化开关(你翻遍所有配置找不到选项是正常的,作者归档开关仅控制作者归档页的索引规则,不影响页面头部的author元输出),直接用下面的方案即可:
方案1:官方钩子移除(推荐,性能最优)
将下面的代码插入到子主题的functions.php文件中,或者使用Code Snippets这类代码片段管理插件添加,避免主题更新时代码被覆盖:
// 移除Yoast SEO输出的author元标签 add_filter( 'wpseo_author_metadata', '__return_empty_string', 20 );
这段代码直接挂载Yoast官方提供的元数据过滤钩子,返回空值即可阻止对应author元标签的输出,不会影响其他Yoast SEO元标签的正常渲染。
方案2:输出缓冲兜底(全版本兼容)
如果你的站点使用的是极旧版本的Yoast SEO,或者上面的钩子因为其他插件冲突失效,可以用输出缓冲方案直接在页面渲染阶段匹配移除目标代码,兼容性最强:
add_action( 'template_redirect', function() { ob_start( function( $html ) { // 匹配移除author元标签 $html = preg_replace( '/<meta\s+name=["\']author["\']\s+content=["\'][^"\']+["\']\s*\/?>\s*/i', '', $html ); // 如果需要同时移除Yoast输出的前后注释标记,可以取消下面两行的注释 // $html = preg_replace( '/<!-- This site is optimized with the Yoast SEO plugin.*?-->\s*/i', '', $html ); // $html = preg_replace( '/<!-- \/ Yoast SEO plugin\. -->\s*/i', '', $html ); return $html; } ); }, 999 );
生效注意事项
- 添加代码后务必清空站点的页面缓存、CDN缓存以及本地浏览器缓存,缓存未刷新是代码添加后看不到效果的最常见原因
- 不要使用网上流传的
remove_action('wp_head','wpseo_author')这类旧代码,Yoast早已废弃对应的动作挂载逻辑,这类代码完全不会生效
内容的提问来源于stack exchange,提问作者Paul Littlefield
相关产品推荐
相关产品推荐

