ホームページ制作のガヤワークス

GAYALOG

ガヤログ

アーカイブ

2022/03/07 (Mon)

WordPress

【WordPress】カスタムフィールドが空の時に非表示もしくは別の内容を表示する

カスタムフィールドの値があるときに表示させるコードそしてカスタムフィールドの値が空の時に表示させるコードそれらを振り分けて出力します。

たとえば「画像を表示させるため、カスタムフィールドに画像URLを取得する」こういったコードがあったとします。

<div class=“photo”>
    <img src="カスタムフィールドの値">
</div>

画像URLがない場合(空欄の場合)、この様な意味のないコードが残ってしまいます。

<div class=“photo”>
    <img src="">
</div>

カスタムフィールドの値の有無で表示を切り替える方法

<?php $value = get_post_meta($post->ID, 'カスタムフィールド名', true);?>
<?php if(empty($value)):?>
    <!--(A) ここは空欄だった場合に表示されます。-->
<?php else:?>
    <!--(B) 値が有る場合に表示されます。-->
    <div class=“photo”>
        <img src="<?php echo post_custom('カスタムフィールド名');?>">
    </div>
<?php endif;?>

$value の値が空の場合(emptyの場合) 、A部分を返します。
それ以外(値が空じゃない場合)は、B部分を返します。

空欄部分のは省略できるので下記のように書くこともできます。

<?php $value = get_post_meta($post->ID, 'カスタムフィールド名', true); if(empty($value)):else:?>
    <!--●値が有る場合に表示されます。-->
    <div class=“photo”>
        <img src="<?php echo post_custom('カスタムフィールド名');?>">
    </div>
<?php endif;?>

Advanced Custom Fieldsプラグインを使っている場合、WordPressの関数である get_post_meta() ではなく、ACFの関数である get_field() で取得してもOKですね。

単純に存在するかしないかがわかれば良いのであれば、これくらいシンプルでもいいですね。

<?php if( get_field('カスタムフィールド名') ):?>
    <div class=“photo”>
        <img src="<?php the_field('カスタムフィールド名');?>">
    </div>
<?php endif; ?>

基本的な内容でしたが、実際に使用する場合は、適宜 条件分岐や内容を変えて利用して下さい。

アーカイブ