かんろぐ Written by kan

Smart Custom Field(SCF)でカスタムフィールドに入力しない場合の条件分岐【WordPress】

CODE 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です。

この記事を書いた人
かんろぐ/プロフィールアイコン
かん
未経験からWeb制作会社へ転職 | Webの楽しさや転職のあれこれを発信 | 転職サポート「CodeChange」主催 / 転職成功15名超 | WordPress・Shopify | CodeBegin転職講師 | マナブさん弟子 | カオマンガイとサウナ | ブロガー | ●かんろぐ運営/月間7,600PV達成 |

合わせて読みたい記事