サポート » 使い方全般 » カスタムフィールドのチェック項目の表示

  • どなたかご教示願えれば幸いです。

    カスタムフィールドのカスタマイズの件でご質問させてください。
    http://yahss.net/wordpress/587-custom_post_type_and_custom_field/
    上記記事を参考にカスタムフィールドを実装した際に、
    チェックボックスの「エリア」の部分で、チェックをした項目をアイコン表示するためにはどのような記述をすれば宜しいでしょうか。

    例えば、
    「住宅街」と「商店街」にチェックをした際に、
    カスタム投稿タイプの詳細ページに

    <ul>
    <li class="ico-2">住宅街</li>
    <li class="ico-3">商店街</li>
    </ul>

    のようにチェックしたのだけを上記のように

    <li>で囲んで表示するためには、どのように記述したら宜しいでしょうか。
    また、可能であればアイコンごとに色を変えたく、
    <li>にそれぞれクラス名を付加したりなんてことは出来るのでしょうか。
    テンプレートに、
    <?php echo get_post_meta( $post->ID, 'esArea', false ); ?>
    と記述すると「Array」と表示されてしまい、

    <?php
    if( post_custom('esArea') ) {
        echo "<ul>\n";
        $items = explode("\n" , post_custom('esArea'));
        foreach($items as $value){
            echo $value  ."<br />" ;
        }
        echo "</ul>\n";
    }
    ?>

    と記述してみると
    「a:2:{i:0;s:9:”住宅街”;i:1;s:9:”商店街”;}」
    このように表示されてしまいます・・・。

    恐れ入ります。
    どなたかご教示願えれば幸いです。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • これはカスタム分類として使うことは考えていないのでしょうか?
    この通りでも実装することはできますが、チェックされた項目の検索が
    今後あり得る場合は出来なくはなくとも非効率になります。

    と記述してみると
    「a:2:{i:0;s:9:”住宅街”;i:1;s:9:”商店街”;}」
    このように表示されてしまいます・・・。

    上記の値はシリアライズされたものになりますので
    phpで扱う場合はこちらを参考にしてください。

    junkin_netさん

    私の場合、ACFばっかりですが
    get_fieldをget_post_metaに置き換えて参考にしてください

    array(チェックボックスなどで複数の値を有する場合)はin_arrayが有効だと思います。
    http://php.net/manual/ja/function.in-array.php

    get_post_metaですべての値を取得した後に、これを選択したらこの表示って感じで定義すればいけそうな気がします。

    よく使うソースを添付しておきますので、ご参考程度に。。。

    <?php if (get_field('pickupflag') ): ?>
    <p class="info-tag">
    <?php $flag = get_field('pickupflag'); ?>
    <?php if(in_array( '通常商品' , $flag ) ) : ?><span>通常商品</span><?php endif; ?>
    <?php if(in_array( 'オススメ' , $flag ) ) : ?><span>オススメ</span><?php endif; ?>
    <?php if(in_array( '今が旬' , $flag ) ) : ?><span>今が旬</span><?php endif; ?>
    <?php if(in_array( 'キャンペーン' , $flag ) ) : ?><span>キャンペーン</span><?php endif; ?>
    <?php if(in_array( '大人気' , $flag ) ) : ?><span>大人気</span><?php endif; ?>
    </p>
    <?php endif;//チェックボックスにチェックがなければ無効 ?>
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「カスタムフィールドのチェック項目の表示」には新たに返信することはできません。