- 状态
- 已解决
- 报告针对
- WPML SEO 2.2.0
- 解决于
- WPML SEO 2.2.2
- 相关插件/主题
- Yoast SEO
- 主题标签
- Compatibility
问题概述
当将 Yoast SEO 与 WPML SEO 结合使用时,您可能会遇到这样一个问题:已隐藏语言的 hreflang 标签仍然作为备用语言参考出现在 XML 站点地图的源代码中,尽管已隐藏语言的文章已被正确地从 XML 站点地图索引中排除。
临时解决方法
在继续操作之前,请确保为您的网站创建完整的网站备份。
- 打开 …/wp-content/plugins/wp-seo-multilingual/classes/Shared/Sitemap/BaseAlternateLangHooks.php 文件。
- 查找从第 59 行开始的
addAlternateLangData函数。 - 在此行之后:
list( $elements, $getPermalink, $isIndexable ) = $this->getEntryHelpers( $type, $obj );
- 插入以下代码块:
// WPML Workaround for wpmlwpseo-350 - Exclude hidden language posts global $sitepress; $hidden_languages = $sitepress->get_setting( 'hidden_languages', [] ); if ( $elements && !empty($hidden_languages) ) { foreach( $elements as $lang => $element) { if ( in_array( $lang, $hidden_languages ) ){ unset( $elements[$lang] ); } } }