抜粋が未入力の場合に何も表示させないなら【has_excerpt】を使え!
ある案件でのお話です。
LOOPに表示させる抜粋に、以下のようなカスタマイズをすることになりました。
抜粋に値がある=抜粋の値を表示
抜粋に値がない=何も表示しない
最初は簡単にできると思っていたのですが、予想以上に苦戦してしまいました。
抜粋の取得は【the_excerpt()】で行うのですが、この関数だけでは希望の形にできません。
【the_excerpt()】には、抜粋が空の場合、本文の冒頭を表示させる機能があるからです。
抜粋が未入力=何も表示しないということはできないんですね。
何か方法はないかしら?と調べてみると、【has_excerpt】という関数に行き当たりました。
【has_excerpt】は、抜粋があるかどうかを判断してくれる関数です。
この関数を使えば、抜粋があれば表示という条件分岐ができるので、以下の形が実現できます。
抜粋に値がある=抜粋の値を表示する
抜粋に値がない=何も表示しない
抜粋を表示させる箇所に以下のコードを記述してやればOKです。
<?php
$excerpt = get_the_excerpt();
if ( has_excerpt() ) : ?>
<?php echo nl2br($excerpt); ?>
<?php endif; ?>
抜粋に値がある=抜粋の値を表示する
抜粋に値がない=何も表示しない
上記が実現できているか確認してみたください。
まとめ
抜粋が未入力の場合、本文の冒頭を自動的に表示しないようにする方法をご紹介しました。
【the_excerpt()】だけでは、抜粋がない場合、本文の冒頭を取得してしまいます。
【has_excerpt】で、抜粋が「空じゃない場合は表示」と条件分岐してやることで希望の形が実現できました。
WordPressで何かしたいとき、関数を探せば大概のことはどうにかできる。
そんなことを再認識した瞬間でした。
コメントを残す