特定のページのみをカスタマイズする2つの方法
固定ページでは page.php というテンプレートが使用されていますが、
特定のページでだけあれを表示したい、これを消したい、などあると思います。
今回は特定のページのみカスタマイズする方法を紹介します。
例として、特定のページにのみお問い合わせリンクを表示してみます。
方法は2通りあるので、お好きなやり方でどうぞ。
- テーマファイル内の page.php を編集する方法
- └ 編集点の少ないケースにおすすめ
- テーマファイル内に専用テンプレートを作成する方法
- └ 変更点ががっつりあるケースにおすすめ
1、テーマファイル内の page.php を編集する方法
特定のページのIDを調べる
現在使っているテーマファイル内の page.php を編集します。
その前に、カスタマイズしたい固定ページのIDを調べてみます。
特定のページの編集画面です。
このページのURLを確認すると、post=268 なんて文字がありました。
これがページIDです。
ページテンプレートを編集する
それでは page.php に特定のページ用のコードを記述します。
<?php if ( is_page('268') ): ?> <a href="お問い合わせURL">お問い合わせはこちら!</a> <?php endif; ?>
このソースを表示したい場所に記述することで、特定のページにのみ
お問い合わせリンクが表示されます。
<?php if ( is_page('268') OR is_page('270') ): ?> <a href="お問い合わせURL">お問い合わせはこちら!</a> <?php endif; ?>
もし特定のページが複数ある場合は、こんな風に OR か || で区切って指定します。
2、テーマファイル内に専用テンプレートを作成する方法
特定のページのIDを調べる
上のやり方同様、カスタマイズしたい固定ページのIDを調べます。
特定のページの編集画面のURLを確認してページIDをチェックします。
ありました。268がページIDです。
特定のページ用のテンプレートを作成、編集する
それではページテンプレートを作成します。
テーマファイル内にある page.php をコピー(複製)して、別名のファイルを作成しましょう。
ファイル名は
で作成します。今回の例では page-268.php ですね。
スラッグは、固定ページ編集画面のタイトルフォームの下に表示されていて変更可です。
作成したファイルに、特定のページ用のコードを記述します。
<?php if (have_posts()) : while (have_posts()) : the_post(); ?> <div class="entry"> <?php the_content(); ?> <a href="お問い合わせURL">お問い合わせはこちら!</a> </div> <?php endwhile; endif; ?>
お問い合わせリンクを記事本文の下に追加しました。
これでOKです。
特定のページにお問い合わせリンクが表示されました!
今回2通りの方法を紹介しましたが、
page.php を編集する方法 は、編集点の少ないケースで
ページテンプレートを作成する方法 は、変更点ががっつりあるケースで使用するといいですね。