Custom Field Templateで値がない場合・複数の場合の表示方法

  • このエントリーをはてなブックマークに追加
  • このエントリーをはてなブックマークに追加

カスタムフィールド関連のおぼえがきその2。
Custom Field Template プラグインを使った場合での項目の表示のさせかたあれこれ。

  1. 項目に値がない場合
  2. Custom Field Templateプラグインで項目を作ったけれど、入力する内容がなかった場合。
    たとえば見出しをつけているときなんかに、見出しだけ表示されているのは格好悪いので
    値がない場合、その項目と見出しごと非表示にする。

    <p>
    <strong>ほげ1の見出し</strong><br />
    <?php echo get_post_meta($post->ID, 'ほげ1', true); ?>
    </p>

    という風に書いている場合、

    <?php if(post_custom('ほげ1')): ?>
    <p>
    <strong>ほげ1の見出し</strong><br />
    <?php echo get_post_meta($post->ID, 'ほげ1', true); ?>
    </p>
    <?php endif; ?>
    

    そのコードをif文でくくる。
    「ほげ1」の部分はフィールド名(日本語可、ただし必ずUTF-8でファイルを保存すること)。

    これで、「ほげ1」の値が空だった場合、段落ごと表示されなくなりました。

  3. 項目に値が複数ある場合
  4. 項目「ほげ2」をチェックボックスで作って、複数チェックしたので値も複数あるよ、というような場合。

    <p>
    <strong>ほげ2の見出し</strong><br />
    <?php echo get_post_meta($post->ID, 'ほげ2', true); ?>
    </p>

    これを

    <p>
    <strong>ほげ2の見出し</strong><br />
    <?php $hoge2 = get_post_meta($post->ID, 'ほげ2', false); ?>
    <?php foreach($hoge2 as $hoge2): ?>
    <?php echo $hoge2; ?>
    <?php endforeach; ?>
    </p>

    このように書き換える。

    true だった場合は複数の値があっても最初の1件しか表示されなかったのが、
    こう書き換えることで入力した分すべて表示されるようになりました(半角スペース区切り)。

とりあえず動きましたよのおぼえがきでした。

参考にさせていただいたサイト様

http://yukimon.org/2011/07/14/wordpress%E3%81%AE%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E8%89%B2%E3%80%85/

WordPressのカスタムフィールド色々|yu-ki’s Blog

http://takanavi.net/takana-blog/wordpress/492/

[WP]Custom Field Templateで項目を表示させないとき|takana-blog

参考書籍

ありがとうございました。

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。