黒ブタBLOG

カスタム投稿タイプ別の条件分岐をする方法 | ワードプレスカスタマイズ

どーもこんばんは
黒ブタです。
今日はカスタム投稿タイプ別の条件分岐方法を学んでいきたいと思う。

ワードプレスでオリジナルのテンプレートを作成していたり、はたまた既存のテンプレートを使っていても必要になってくるのが「カスタム投稿タイプ」です。
例えば、お店のページやスタッフ個別のページなど、通常の記事のレイアウトと違うページを作りたい場合、いちいち固定ページで作るわけにもいかない。
また、それら特定のレイアウトページを量産する際に「カスタム投稿」を作ると大変便利なわけです。

ちなみに、カテゴリーでの条件分岐方法は

<?php if(in_category('abc')):?>
<!-- カテゴリーが「abc」の場合 -->
<p>カテゴリーは「abc」です。</p>
<?php else:?>
<!-- カテゴリーが「abc」ではない場合 -->
<p>カテゴリーは「abc」以外です。</p>
<?php endif;?>

カスタム投稿を作っても、cssでレイアウトを整える際に、複数のカテゴリーを所持していて、別のcssを読み込んでしまうのは嫌だ。
そんな時、投稿タイプ別(カスタム投稿タイプ別)で同じレイアウトにしたい場合に活躍するのが「カスタム投稿タイプ別の条件分岐」です。

記述の仕方

<?php if(get_post_type()=='abc'): ?>
<!-- 投稿タイプが「abc」の場合 -->
<p>投稿タイプはabcです。</p>
<?php else:?>
<!-- 投稿タイプが「abc」ではない場合 -->
<p>投稿タイプはabcではない</p>
<?php endif; ?>

以上がカスタム投稿タイプ別の条件分岐方となります。
cssやjavascriptなども投稿タイプ別、カテゴリータイプ別で条件分岐すれば、無駄なcssファイルやjsファイルを読み込まなくて済むように出来ますので、少しでも表示速度を早くさせたいと思っている方は面倒かとは思いますが、上記を駆使して無駄な読み込みファイルを減らしてページを軽くしてあげてください。

なお、シングルページで現在の投稿タイプを取得する場合は

get_post_type();

ですので、変数に格納する場合は

<?php $post_type = get_post_type();?>

出力して確かめる場合は

<p><?php echo $post_type;?></p>

で確かめてみましょう。

「投稿タイプの取得」これがどういう時に役に立つかと言いますと、シングルページで同じ投稿タイプの記事一覧を出したりする時に使えます。