- 状态
- 已解决
- 报告针对
- WPML SEO 2.2.4
- 解决于
- 2.2.5
- 相关插件/主题
- Rank Math SEO
- 主题标签
- Compatibility
问题概述
当将 Rank Math 或 Yoast SEO 与 WPML 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 站点地图。