投稿本文 the_content()が空かどうかで条件分岐

投稿本文 the_content()が空かどうかで条件分岐

WordPressでのホームページ作りで、オリジナルテーマを作成したり、既存のテーマをカスタマイズする際に、カスタムフィールドを使う場合が結構あるのではないでしょうか?

例えば、カスタムフィールドで定型の入力フォーマットをつくり、本文部分は「スタッフからのコメント」と見出しを付けて表示したいとします。

コードを下記の様に書いた場合、 本文を入力しないでも「スタッフからのコメント」の見出しだけ残ってしまいます。

<section>
	<h3>スタッフからのコメント</h3>
	<?php the_content();?>
</section>

the_content()が空かどうかで条件分岐

the_content()が空だったら「スタッフからのコメント」も表示されないようにしたいですね。

if文を使って、条件分岐させましょう。

コピペOKのthe_content()が空かどうかの条件分岐

<?php if(empty($post->post_content)) { ?>
<!--本文が空(未入力)の場合の処理-->
<?php } else { ?>
<!--本文が何か入力されている場合の処理-->
<?php } ?>

if(empty(★))で★が空だったらとなりますね。

ちなみに、例の場合だと「!」という否定演算子をつかってシンプルに書きました。

<?php if(!empty($post->post_content)){ ?>
 <section>
  <h3>スタッフからのコメント</h3>
  <?php the_content();?>
 </section>
<?php } ?>

if(!empty(★))で★が空じゃなかったらとして else も省略してます。もちろん波括弧じゃなくて、コロンで書いてもOKです。

<?php if(!empty($post->post_content)): ?>
 <section id="bukken-content">
  <h3>スタッフからのコメント</h3>
  <?php the_content();?>
 </section>
<?php endif; ?>

読みやすい方で書きましょう。

if文を色々と使えるようになると、wordpressのカスタマイズやテーマ制作が面白くなりますよ。

この記事を書いた人

木村 太一

ドットワンの代表です。