WPML

問題の概要

カスタムページテンプレートを使用している場合、選択したテンプレートが翻訳されたページに正しく適用されないことがあります。

回避策

この問題はWPML 4.9.3で修正されました。 更新するとサイト上の問題は解決するため、この回避策が必要になるのは、まだ更新できない場合のみです。

カスタムページテンプレートが翻訳されたページに正しく適用されるようにするには、以下の手順に従ってください。

  • wp_postsおよびicl_translationsテーブルの両方から関連するエントリを削除します。
または
  • 上部の管理バーを使用してセカンダリ言語に切り替え、外観エディターに移動して、翻訳されたテンプレートを見つけ、それを削除します。
  • WPML設定ページ URLで、スラッグ翻訳の「翻訳」を有効化します(これにより、テンプレートのスラッグがタイトルから自動生成されるのではなく、翻訳に含まれるようになります)。
  • 次のファイルを開きます:wp-content/plugins/sitepress-multilingual-cms/classes/full-site-editing/BlockTemplates.php
  • 56行目付近の次の行をコメントアウトします。
    $postData['post_name'] = $post->post_name;
  • テンプレートを翻訳に再送信します。
  • テンプレートを翻訳する際は、スラッグが正しく、翻訳されたページまたはタクソノミースラッグが含まれていることを確認してください。

エッジケースのシナリオ

特定の順序で処理が行われた場合、翻訳されたページが翻訳されたテンプレートに関連付けられないことがあります。
  • 新しいページの作成中に直接新しいカスタムテンプレートを作成する(右側のサイドバーで「テンプレート新規テンプレートを作成」を選択する)と、ページとそのテンプレートの両方が同時に公開されます。
  • 自動翻訳(「すべてを翻訳する」)が有効化されている場合、WPMLはページとテンプレートの両方を同時に翻訳に送信します。
  • テンプレートの翻訳よりも先にページの翻訳が完了した場合、割り当てるべき翻訳されたテンプレートがまだ存在しません。そのため、翻訳されたページには代わりにデフォルトテンプレートが適用されてしまいます。
  • これを解決するには、テンプレートの翻訳が完了して公開済みになった後、新しく翻訳されたテンプレートが正しく適用されるように、翻訳されたページを再送信して翻訳します。

すべての既知の問題

まだこの問題が発生しますか?

アップデートしても問題が解決しない場合は、サポートのご質問をお寄せください。一緒に調査いたします。