タグの有無を判別する条件文@WordPress
WordPressでは、カテゴリは何かしら必須で割り当てられますが(デフォルトだと未分類が)、タグは任意です。
投稿によってはタグがある場合、ない場合もあるかもしれません。(必ずつけるという運用ルールでカバーするのもひとつですが)
以下のコードはタグの有無を判別して出力を出し分ける条件文です。
<?php if(has_tag()==true) : ?> <li>タグ:<?php the_tags(”,’, ‘); ?></li> <?php else : ?> // タグがない場合の処理。何もしないなら、↑の1行を消してOK。 <?php endif; ?>
投稿日、カテゴリ名も表示するようにした、ループに組み込んで使う場合の例は以下になります。
<?php if (have_posts()) : while (have_posts()) : the_post(); ?> <div class="post"> <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2> <ul class="optional"> <li class="date">Published: <?php echo get_post_time('M jS, Y'); ?></li> <li class="category">Category: <?php the_category(', '); ?></li> <?php if(has_tag() == true) : ?> <li class="tags">Tags: <?php the_tags('', ', ', ''); ?></li> <?php else : ?> // タグがない場合の処理。何もしないなら、↑の1行を消してOK。 <?php endif; ?> </ul> <!-- / .post --></div> <?php endwhile; ?> <?php else: ?> <div class="post"> <h2>記事がありません</h2> <!-- / .post --></div> <?php endif; ?>
ブラウザで確認するとこうなります。一番上の投稿がタグ無しの場合ですね。タグの行(li要素)が他の二つと違って出力されていません。
このようにしておけば、タグが設定されていない場合に見出しに「Tags: 」だけ表示されて、タグ自体はないということにならず、スマートかなと思います。