大阪のホームページ制作会社 株式会社TREVO
技術ブログ

スマートカスタムフィールドで空欄だった時の条件分岐

2024.12.25.

スマートカスタムフィールド

twitter Facebook Pocket LINE はてブ

株式会社TREVOの月額制ホームページ制作サービス
PR

カスタムフィールドを使った投稿やページでは、フィールドに値が入力されている場合にのみデータを表示し、空欄の場合は非表示にする処理が一般的です。また、空欄の場合にデフォルトのメッセージを表示する場合もあります。

以下では、フリーのスマートカスタムフィールド(Smart Custom Fields)を使用したコード例を紹介します。

カスタムフィールドが空欄だった時の条件分岐

カスタムフィールドが空欄かどうかを判定し、値があれば表示する基本的なコードです。

コード例

フィールド名:○

<?php if (get_post_meta($post->ID, '○', true)): ?>
    <?php $○ = post_custom('○'); // カスタムフィールドの値を取得 ?>
    <?php echo $○; ?>
<?php endif; ?>

テキストエリアで改行を反映させる

改行を含むテキストエリアの値を表示する場合、nl2br() 関数を使用して改行コードをHTMLの <br> タグに変換します。

コード例

フィールド名:○

<?php if (get_post_meta($post->ID, '○', true)): ?>
    <?php $○ = SCF::get('○'); // スマートカスタムフィールドで値を取得 ?>
    <?php echo nl2br($○); // 改行をHTMLに変換して表示 ?>
<?php endif; ?>

条件分岐を追加してデフォルトのメッセージを表示

カスタムフィールドに値がない場合に、デフォルトのメッセージを表示する例です。

コード例

フィールド名:○

<?php if (get_post_meta($post->ID, '○', true)): ?>
    <?php $○ = post_custom('○'); // カスタムフィールドの値を取得 ?>
    <?php echo $○; ?>
<?php else: ?>
    <p>入力が無い場合の情報を挿入</p>
<?php endif; ?>

応用:複数フィールドの条件分岐

複数のカスタムフィールドの値をチェックし、いずれかに値がある場合に特定の処理を行う方法です。

コード例

フィールド名:〇、△

<?php
$field1 = get_post_meta($post->ID, '〇', true);
$field2 = get_post_meta($post->ID, '△', true);

if (!empty($field1) || !empty($field2)): ?>
    <p>いずれかのフィールドに値があります。</p>
    <?php if (!empty($field1)): ?>
        <p>フィールド1: <?php echo esc_html($field1); ?></p>
    <?php endif; ?>
    <?php if (!empty($field2)): ?>
        <p>フィールド2: <?php echo esc_html($field2); ?></p>
    <?php endif; ?>
<?php else: ?>
    <p>どちらのフィールドにも値がありません。</p>
<?php endif; ?>

ポイントと注意点

get_post_meta()post_custom() の違い

get_post_meta() は標準のWordPress関数で、カスタムフィールドの値を取得します。

post_custom() は簡易的に値を取得する関数ですが、現在ではあまり使用されません。

HTMLエスケープの使用

出力する値に対して、esc_html()esc_attr() を使用してエスケープ処理を行い、セキュリティを確保します。

Smart Custom Fieldsの利用

SCF::get('フィールド名') を使用すると、Smart Custom Fieldsプラグインで設定されたカスタムフィールドの値を簡単に取得できます。

改行処理

テキストエリアに入力された値は改行がそのまま表示されないため、nl2br() を使用して改行を適切に処理します。

大阪のホームページ制作会社TREVOでは、ホームページ制作に関する情報を掲載しています。最短2日で仮サイトを公開するサービスやSEO対策に特化したホームページ制作、オリジナルホームページデザイン、ライティング、リスティング広告、WEBマーケティングなどのサービスをご紹介しています。

板浪雅樹 のアバター

経歴: 映像制作の専門学校を卒業後、映像制作(編集・撮影)でのアシスタント、カーナビゲーション用の3DCG制作、PS2用の3DCGゲーム背景制作、16ミリフィルムのデジタル変換業務等を経てWEB制作部門のある会社に就職。株式会社TREVOでディレクション、SEO対策、CMS開発、3DCG制作、映像制作を担当

twitter Facebook Pocket LINE はてブ
WEB無料相談