ショウジンブログ

Learn as if you will live forever, Live as if you will die tomorrow.

投稿タイプを指定して出力を分ける条件文@WordPress

Sponsored Links

f:id:showjinx:20160715104755j:plain

WordPressの投稿タイプを指定して出力を出し分ける条件文の例です。

投稿タイプごとにsingle.phpを分けて(single-◯◯◯.php)おけば不要ですが、single.phpだけでデフォルト投稿、カスタム投稿を表示する場合にはsingleテンプレート内で以下のような条件文を書いて出力を分けることが出来ます。

指定したいカスタム投稿タイプのスラッグを以下のように指定します。

<?php if (( get_post_type() == 'seminar')): ?>
    カスタム投稿タイプのスラッグが "seminar" の場合にこの文字列が表示されます。
<?php endif; ?>

複数指定する場合には論理演算子を使って

<?php if (( get_post_type() == 'seminar' || get_post_type() == 'blog' || get_post_type() == 'news' )): ?>
    カスタム投稿タイプのスラッグが "seminar, blog, news" の場合にこの文字列が表示されます。
<?php endif; ?>

カスタム投稿タイプをデフォルトの投稿を分けて指定する場合はelseifを使って

<?php if (( get_post_type() == 'seminar' )): ?>
    カスタム投稿タイプのスラッグが "seminar" の場合にこの文字列が表示されます。
<?php elseif(( get_post_type() == 'post' )): ?>
    デフォルトの投稿の場合にこの文字列が表示されます。
<?php endif; ?>

上記は以下のように「投稿タイプのスラッグがseminarなものとそれ以外」でも同じ結果が得られます。

<?php if (( get_post_type() == 'seminar' )): ?>
    カスタム投稿タイプのスラッグが "seminar" の場合にこの文字列が表示されます。
<?php else: ?>
    カスタム投稿タイプのスラッグが "seminar" 以外の投稿すべてにこの文字列が表示されます。
<?php endif; ?>