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

問題の概要

WPML SEORank MathまたはYoast SEOを使用している場合、サイトマップのソースコード内の代替リンクが、期待される言語ルートURL(例: /es/)ではなく、内部パーマリンク(例: /es/home/)を使用した翻訳済みのホームページURLを誤って表示する場合があります。これによりフロントエンドの表示が影響を受けることはなく、カノニカルリンクと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 );
            

これらの変更を適用した後、サイトマップを再構築する必要があります。

  • Rank Mathの場合: 「Rank Math > Sitemap Settings」に移動し、「Links per sitemap」の値を変更して設定を保存します(後でお好みの値に戻すことができます)。
  • Yoast SEOの場合: サイトマップを再生成するには、こちらのチュートリアルに従ってください。

すべての既知の問題 →