カスタムフィールドのチェックボックスを表示させる方法

プラグイン、Advanced Custom Fieldsをつかってカスタムフィールドを作成しました。

貸出期間、というフィールドで、1日・1週間・1か月、と3つのチェックボックスを用意しました。

カスタム

さてここからが問題発生です。
チェックボックスで選択した項目をどう表示させるの????
<?php echo get_post_meta($post->ID,’length’,true); ?> と書くとarrayと表示されるのです。

カスタムフィールド 表示 とかでググってもなかなかわからないまま、行きついたのがAdvanced Custom Fieldsの本家サイト!
http://www.advancedcustomfields.com/resources/checkbox/
ありました、いろいろ丁寧に説明されていました!

まずは、カスタムフィールドのチェックボックスでチェックした値が表示されるかを下記のコードでテスト!
ちゃんとday,week,monthと表示されました(希望としては1日・1週間・1カ月だったがスルー)


<?php //カスタムフィールドのチェックボックスでチェックした値を表示
echo implode(', ', get_field('length')); ?>

ではここから、本当にやりたかった作業。

カスタムフィールドのチェックボックスによって、表示される画像を変える!というもの。

acf
こんな風に「1日」と「1か月間」にチェックをいれると画像の表示をするために描いたIF文。

<?php if( in_array( 'day', get_field('length') ) )
{
    echo '<img src="' .get_stylesheet_directory_uri(). '/images/ico_day.png" width="50" height="50" alt=""/>';
}
?>

<?php if( in_array( 'week', get_field('length') ) )
{
    echo '<img src="' .get_stylesheet_directory_uri(). '/images/ico_week.png" width="50" height="50" alt=""/>';
}
?>

<?php if( in_array( 'month', get_field('length') ) )
{
    echo '<img src="' .get_stylesheet_directory_uri(). '/images/ico_month.png" width="50" height="50" alt=""/>';
}
?>

(※stylesheet_directory_uriを使っているのは、子テーマなので画像へのパスのためです)

無事下の画像のように、チェックした項目のみ用意していたアイコン画像が表示されました!

dm

簡単そうでちょっと時間がかかったのでメモ&シェアします><

この記事にコメントを残す