WPML
状态
已解决
报告针对
WPML SEO 2.2.0
解决于
WPML SEO 2.2.2
相关插件/主题
Yoast SEO
主题标签
Compatibility

问题概述

当将 Yoast SEOWPML 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] );
            }
        }
    }
            

所有已知问题 →