Blog

WordPress テンプレート階層が認識されない

WordPressのテンプレート階層が認識されない問題が発生

例えば個別ページで <domain>/contact/ を作ったのだが、page-contact.php が呼び出されない。

テンプレート階層はWordPressが内部的に持っているので検証しようがないのだけれど、解決するまでの手順を記載しておきます。

解決した手順その1

  • 設定 > パーマリンク設定
  • 構造をカスタム構造の カテゴリー/ ポスト名に変更

テンプレート階層をいじると外部リンクがすべて変わってしまうのでSEOに影響するため、WordPressでのサイト作成初期状態でないと変更しないほうがいい

手順その2 パーマリンク設定のリセット

パーマリンク設定のみをリセットする場合は、以下の手順で行います。

  1. WordPress ダッシュボードにアクセス: 管理画面にログインします。
  2. パーマリンク設定に行く: 左側のメニューから「設定」→「パーマリンク」を選択します。
  3. パーマリンク構造をデフォルトに戻す: 「プレーン」オプションを選択し、「変更を保存」をクリックします。これにより、パーマリンクがデフォルトの設定(例:?p=123)に戻ります。
  4. カスタム構造を再設定: 必要に応じて、再びカスタムのパーマリンク構造を設定します。

手順その3 Advance Custom Field(アドバンスカスタムフィールド)プラグインの削除

  • 関係ないかもしれないけど、ローカル開発環境でテンプレート階層が効かなくて、本番サーバーではきちんと動いたので比較してみると、ローカル開発環境にはアドバンスカスタムフィールドプラグインが入っていたので削除
  • これはおそらく手順2までやれば問題ないと思います。プラグインの削除によりパーマリンク設定にリセットが入った可能性も考えられます。

余談ですが、エラーを見るためにいれた Query Monitorがとても良かったので紹介しておきます

  • 表示されている画面で使っているテンプレートがわかる
  • クエリにかかる時間が計測できる

ではまた


一つ前の記事 git reset --hard でコードを完全に戻せなかった理由
次の記事 日本企業におけるIT技術の遅れ