特定の固定ページのみデザインを変えたい!ページテンプレートを作成する方法
WPの固定ページで特定のページのみデザインを変更したいケースはよくあると思います。
・ランディングページとして、全体的に全く別のデザインにしたい
・普通の固定ページでは2カラム表示で、ギャラリーページでは1カラムで表示させたい
・特定の固定ページのみ記事の前に画像を追加したい
などなど。
固定ページのテンプレートは、特に指定していなければ page.php が使われています。
固定ページによってテンプレートファイルを切り替える方法はいくつかあるのでまとめてみました。ケースに合ったものをご参考にどうぞ。
固定ページ用の新しいページテンプレートを作る
デザインを変えたいページが複数ある時に
ページテンプレートを作ると、固定ページの投稿画面で選択できるようになります。
こんな感じに。
新しいページテンプレートを使いたい固定ページが複数あるときなどはこの方法が楽です。
新しいページテンプレートを作成
<?php /* Template Name: お好きなテンプレート名(例:お問い合わせ) */ ?>
作成したテンプレートファイルの一番上に上記のコメントアウトを追加します。
これでこのファイルはページテンプレートだと判別されるようになります。
好きなテンプレート名を入れます(日本語でも可)(重複はダメ)
ファイル名
分かりやすい英数字のものにします。(例:contact.php)
Template Name: のコメントアウトより下の内容は通常のテンプレート同様の記述法でOKです。
内容はお好みで。
できましたら、テーマファイル内に作成したページテンプレートをアップロードします。
固定ページ投稿画面からページテンプレートを指定する
うまくいけば、上で作成したテンプレートが投稿画面の右側「固定ページの属性」から
選択できるようになっています。
投稿画面に「固定ページの属性」がないです!
固定ページにテンプレートを指定したいのに「固定ページの属性」がない場合、
画面上部の「表示オプション」をクリックします。
「固定ページの属性」にチェックを入れます。
これで表示されます!
特定の固定ページ専用のテンプレートを作る
固定ページ1つだけデザインを変えたい時に
固定ページではスラッグというURLに使われる半角英数字を持ちますが、このスラッグ名を使って特定の固定ページ専用のページテンプレートを用意することができます。
管理画面からテンプレートを選択する必要はないですが、重複のできないスラッグ別ということで複数の固定ページには設定できません。また、この方法はスラッグ名依存のためスラッグ名を頻繁に変えるページではおすすめできません(あまり無いとは思いますが…)
スラッグ別固定ページテンプレートを作成
この方法が一番簡単です。ページテンプレートファイル名にハイフンとスラッグを含むだけです。
例:page-info.php
内容は通常のテンプレート同様の記述法でOKです。
これで、上の例では「お問い合わせ」ページのテンプレートが新しく作成したものに切り替わります。
特に管理画面で設定もなしにアップロードした時点で反映されます。
page.php 内で分岐させる
ごく一部のみ変えたいときなど、応急処置的な修正時に
固定ページは基本的にpage.phpが使われますが、変更点がそこまで多くない(画像を1つ追加させるなど)ケースでは新しくテンプレートを作るより、page.phpにそのまま書いてしまった方が後々の管理も楽だったりします。
そんなプチ修正の方法はこちら。
編集したい固定ページのIDを確認
カスタマイズしたい固定ページのIDを調べるために固定ページの編集画面です。
URLを確認すると post=xxxx とあります。この数字を控えてください。
このxxxxがページIDです。
page.php の変更したい箇所に分岐を記述する
<?php if ( is_page('xxxx') ): ?> pageIDがxxxxの固定ページのみ表示される箇所です。 <?php endif; ?>
is_page() の引数に先ほど控えたページIDを指定することで、固定ページかつIDが渡されたものならTRUEを返すようになります。これでpageIDがxxxxの固定ページのみ「pageIDがxxxxの固定ページのみ表示される箇所です。」が表示されます。