WPML
ステータス
解決済み
報告対象
WPML SEO 2.2.4
解決されたバージョン
WPML SEO 2.2.5
関連するプラグイン/テーマ
Rank Math SEO
トピックタグ
Compatibility

問題の概要

WPMLでRankMath SEOを使用している場合、サイトマップのソースコード<xhtml:link rel="alternate" hreflang="...">内のホームページURLがセカンダリ言語で正しくないという問題が発生することがあります。言語固有のホームページ(例: 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 );
    			};
            

  • サイトマップを再構築します:「Rank Math」>「Sitemap Settings」に移動し、「Links per sitemap」の値を変更して保存します。

すべての既知の問題 →