WPML
状态
已解决
报告针对
WPML SEO 2.2.4
解决于
2.2.5
相关插件/主题
Rank Math SEO
主题标签
Compatibility

问题概述

当将 Rank MathYoast SEOWPML SEO 结合使用时,XML 站点地图源代码中的备用链接可能会错误地以内部固定链接(例如 /es/home/)的形式显示已翻译的主页 URL,而不是预期的语言根 URL(例如 /es/)。这不会影响前端显示,前端的规范链接和 hreflang 链接显示正确。

临时解决方法

在继续操作之前,请确保对您的网站进行完整备份


  • 打开 …/wp-content/plugins/wp-seo-multilingual/classes/Shared/Sitemap/BaseAlternateLangHooks.php 文件。

  • 找到第 61 行。

  • 将:
    $link[ self::KEY ][ $lang ] = apply_filters( 'wpml_permalink', $link['loc'], $lang );
            


  • 替换为:
    $link[ self::KEY ][ $lang ] = apply_filters( 'wpml_permalink', $link['loc'], $lang, true );
            

  • 在第 89 行重复相同的操作。

  • 将:
    return apply_filters( 'wpml_permalink', $getPermalink( $id ), $language );
            


  • 替换为:
    return apply_filters( 'wpml_permalink', $getPermalink( $id ), $language, true );
            

应用这些更改后,您需要重新生成 XML 站点地图:

  • 对于 Rank Math:转到“Rank Math > Sitemap Settings”,更改“Links per sitemap”的值,保存设置(之后您可以将其恢复为您的首选值)。
  • 对于 Yoast SEO:按照本教程重新生成 XML 站点地图。

所有已知问题 →