問題の概要
サイトのデフォルト言語とは異なる言語でホームページを作成した場合、Rank Math SEOプラグインのサイトマップに、言語ディレクトリのみではなくページの実際のスラッグが誤って表示されることに気づくでしょう。
回避策
この問題は修正されました。 最新バージョンにアップデートするとお使いのサイトで問題が解決するため、この回避策はまだアップデートできない場合にのみ必要です。
続行する前に、サイトの完全なバックアップを必ず作成してください。
- …/wp-seo-multilingual/classes/RankMathSEO/Sitemap/Hooks.phpファイルを開きます。
- 58行目を探します。
- 以下のコードを:
$this->secondaryHomesById = Maybe::fromNullable( get_option( 'page_on_front' ) ) ->map( PostTranslations::get() ) ->map( Fns::reject( Obj::prop( 'original' ) ) ) ->map( Fns::map( $getIdAndUrl ) ) ->map( Lst::fromPairs() ) ->getOrElse( [] ); - 次のように変更します:
$this->secondaryHomesById = Maybe::fromNullable( get_option( 'page_on_front' ) ) ->map( PostTranslations::get() ) ->map( Fns::reject( \WPML\FP\Relation::propEq('language_code', apply_filters('wpml_default_language', 'en')) ) ) ->map( Fns::map( $getIdAndUrl ) ) ->map( Lst::fromPairs() ) ->getOrElse( [] );