WordPressで共通のphpファイルで特定の固定ページのみに表示(非表示)する方法
WordPressでサイトを制作する時に、header.php・footer.php・sidebar.php・page.phpなどの各ページで共通して使用しているファイルがあります。
そういった共通で使用するファイルでも、このページにだけ表示させたいor非表示にしたいということがあります。
そんな時に同じファイルを2つ作って振り分けることもできますが、そうすると修正などをする際にファイルを複数修正しないといけなくなります。
作業時間が増えるだけでなく、ミスが出る原因にもなります。
そういったミスや作業時間の短縮をするために、同じファイルでページごとに表示・非表示の振り分けができる方法をご紹介します。
特定の固定ページのみに表示(非表示)する方法
方法が簡単です。if文で振り分けするだけになります。この方法は、応用がききいろいろな場面で使うことができます。
1 2 3 4 5 |
<?php if(is_page( array( 12 ) ) ): ?> ①ここに表示させたい内容を記入する <?php else: ?> ②特定のページ以外のページに表示する内容 <?php endif; ?> |
①に特定の固定ページのみに表示させたいコンテンツを記入します。②は、特定の固定ページ以外のページに表示させる内容になります。
特定の固定ページの指定は、1行目の「array( 12 )」の「12」で指定します。この数字はページのIDになります。このIDを変更することで、特定ページを選択することができます。
これだけで、いろいろな方法ができます。
ページのIDを簡単に確認する方法
WordPressでは、ページのIDを管理画面上に表示していません。ですから、IDが分からなければ特定ページに指定することもできないです。
ただし、ページのIDを簡単に確認する方法があります。それが上記の画像を見て下さい。
マウスをページ一覧からページタイトルに持っていくと左下にリンク先が表示されます。このURLに「post=●●」と表示している部分があります。この「●●」になっている数字がページのIDになります。
特定の固定ページに対していろいろな応用
特定の固定ページが複数ある場合
IDの指定を複数指定することができます。
1 2 3 4 5 |
<?php if(is_page( array( 12, 13, 14 ) ) ): ?> ①ここに表示させたい内容を記入する <?php else: ?> ②特定のページ以外のページに表示する内容 <?php endif; ?> |
上記の様にページIDを「,」で区切って複数していすることができます。
特定の固定ページ以外は何も表示させない場合
1 2 3 4 5 |
<?php if(is_page( array( 12 ) ) ): ?> ①ここに表示させたい内容を記入する <?php else: ?> ② <?php endif; ?> |
②になにも記入せずに空白にしておくと特定の固定ページ以外は非表示ということになります。
(特定の固定ページ以外は空白を表示すると考えるとわかりやすいかも)
特定の固定ページのみ何も表示させない場合
1 2 3 4 5 |
<?php if(is_page( array( 12 ) ) ): ?> ① <?php else: ?> ②特定のページ以外のページに表示する内容 <?php endif; ?> |
これは先程と逆で特定の固定ページには表示させたくない場合は、①を空白にします。そうすると特定の固定ページのみ非表示ということになります。
こういった簡単なif文のコードで、ファイル数を増やすことなく共通のファイルのまま特定の固定ページに表示・非表示させることができます。
簡単なコードですが、ページのIDや仕組みを理解しておかないと上手く使うことができなかったりします。
この書き方を覚えていろいろな応用に使ってみてください。