Smart Custom Field(SCF)でカスタムフィールドに入力しない場合の条件分岐【WordPress】
PR ※当サイトではアフィリエイト広告を利用しています
Smart Custom Field(SCF)でカスタムフィールドに入力しない場合の条件分岐についてメモしておきます。
基本的に入力項目があるので、空で出力することは滅多にありませんが、内容によっては項目を空のまま設定することもあります。
そういった時は、非表示で問題ないのですが、下記のような条件分岐の場合は必要です。
①採用ページ
- 募集しているときは応募フォームを表示したい
- 募集していない場合は「現在募集していません」のような表示をさせたい
②商品ページ
- 新商品が入荷されたらサイトで告知をしたい
- 新商品の発売期間が終わったら「現在、新商品はありません」のような表示をさせたい
このような感じですね。
イメージが伝わりづらいかもですが、サイト運用するとよくありそうな場面でもあります。さっそく見ていきましょう\(^^)/
Smart Custom Field(SCF)でカスタムフィールドに入力しない場合の条件分岐【ソースコード有】
まずはコードから。
<?php
$new_menu = SCF::get('ここにグループ名',555); //グループ名とpostIDorPageIDを入力
foreach ( $new_menu as $fields ){
$name = $fields['新メニュー名'];
$price = $fields['金額'];
?>
<?php if (!empty($name)) : ?>
<p>商品名:<?php echo $name; ?>が、新発売!</p>
<p>値段:<?php echo $price; ?>円</p>
<?php else : ?>
<p>今は新商品の販売をしていません!</p>
<?php endif; ?>
<?php
}
?>
Smart Custom Field(SCF)の出力方法は一旦省略します。
【解説】Smart Custom Field(SCF)でカスタムフィールドに入力しない場合の条件分岐
<?php if (!empty($name)) : ?>
で条件分岐をしています。
カスタムフィールド内で$name=「新メニュー名」の値を取得しており、下記のような条件になります。
- 「新メニュー」の項目を入力で表示
- 入力しなかったら「今は新商品の販売をしていません」と表示
僕の場合、この書き方が一番ラクでした。他にも、
<?php if(get_post_meta($post->ID, ‘カスタムフィールド名’, true)): ?>
//項目入力されたら表示
<?php endif; ?>
<?php $scf = SCF::get(‘カスタムフィールド名’); ?>
<?php if(!empty($scf)): ?>
//項目入力されたら表示
<?php else: ?>
//項目入力がない場合はこちらを表示
<?php endif; ?>
こういった書き方でもOKです。
合わせて読みたい記事