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

问题概述

当您将 RankMath SEO 与 WPML 结合使用时,您可能会遇到一个问题:次要语言的 XML 站点地图源代码 <xhtml:link rel="alternate" hreflang="..."> 中的主页 URL 不正确。XML 站点地图没有显示特定语言的主页(例如,domain.com/?lang=es),而是输出完整的页面 URL(例如,domain.com/page-slug/?lang=es)。

临时解决方法

在继续操作之前,请确保您的站点有完整站点备份


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

  • 找到第 88 行。

  • 将:
    			$mapPermalink = function ( $id, $language ) use ( $getPermalink ) {
    				return apply_filters( 'wpml_permalink', $getPermalink( $id ), $language );
    			};
            


  • 替换为:
    			$mapPermalink = function ( $id, $language ) use ( $getPermalink ) {
    
    				// WPML Workaround for wpmlsupp-13368 
    				$front_id = (int) get_option( 'page_on_front' );
    				if ( $front_id ) {
    					$default_lang = apply_filters( 'wpml_default_language', null );
    					$id_in_default = (int) apply_filters( 'wpml_object_id', (int) $id, 'page', false, $default_lang );
    					if ( $id_in_default && $id_in_default === $front_id ) {
    						return apply_filters( 'wpml_permalink', trailingslashit( home_url() ), $language );
    					}
    				}
    
    				return apply_filters( 'wpml_permalink', $getPermalink( $id ), $language );
    			};
            

  • 重建 XML 站点地图:转到“Rank Math > 站点地图设置”,更改“每个站点地图的链接数”的值,然后保存。

所有已知问题 →