WPML
ステータス
解決済み
報告対象
WPML Multilingual CMS 4.6.9
解決されたバージョン
WPML 4.9.3
トピックタグ
Bug

問題の概要

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

回避策

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


  • 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はページとテンプレートの両方を同時に翻訳に送信します。

  • テンプレートの翻訳よりも先にページの翻訳が完了した場合、割り当てるべき翻訳されたテンプレートがまだ存在しません。そのため、翻訳されたページには代わりにデフォルトテンプレートが適用されてしまいます。

  • これを解決するには、テンプレートの翻訳が完了して公開済みになった後、新しく翻訳されたテンプレートが正しく適用されるように、翻訳されたページを再送信して翻訳します。

すべての既知の問題 →