サポート » プラグイン » custom field template のcheckboxを利用して選択した画像を表示させる方法

  • 解決済 single78

    (@single78)


    custom field template 1.8.2 を使用しています。
    checkboxの選択項目に画像を対応させて、チェックした項目の画像を表示させたいです。
    valueのappleとorangeにチェックするとapple.gifとorange.gifが表示されるなど。
    可能であれば設定方法やPHPコードを教えてください。

    [Favorite Fruits]
    type = checkbox
    value = apple # orange # banana # grape

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • 動作確認してませんが

    $Favorite_Fruits = get_post_meta($post->ID,'Favorite Fruits');
    foreach($Favorite_Fruits as $value){
    echo '<img src="[画像ファイルまでのパス]/' . $value . '.gif">';
    }

    とかでどうでしょうか?
    get_post_metaでチェックした値を取得して、その値を加工して画像を出力する感じで。

    トピック投稿者 single78

    (@single78)

    回答ありがとうございます。
    カスタムフィールドテンプレートの Shortcode Format に table を作り、
    <td></td>の1つにPHPコードと[コメント]を記述しました。
    そして「PHPを使用する」にチェックを入れました。
    結果、PHPコードとその下に記述した[コメント]の部分だけ表示されませんでした。
    他の<td></td>内に記述した[]内の値は表示されています。
    使い方が間違っているのでしょうか?

    Shortcode Format のコード

    <tr>
    <td>種類: [種類]</td>
    <td>
    <?php $Tokuchou = get_post_meta($post->ID,'特徴');
    foreach($Tokuchou as $value){
    echo '<img src="img/' . $value . '.gif" />';
    } ?>
    <br />[コメント]</td>
    </tr>

    表示されたページのソース

    <tr>
    <td>種類: 果物</td>
    <td><br />
    </td>
    </tr>

    Shortcode Format を使用したことがないので試してみましたが
    global $post;
    が必要のようですね。
    phpの先頭にでも記述してください。

    トピック投稿者 single78

    (@single78)

    ありがとうございます。global $post;を記述したら表示できました。

    <?php
    global $post;
    $Tokuchou = get_post_meta($post->ID,'特徴');
    foreach($Tokuchou as $value){
    echo '<img src="img/' . $value . '.gif" />';
    } ?>

    表示されるようになりましたが、表示された画像の並びが不規則になります。
    例えば value = type1 # type2 # type3 # type4 のうち、
    1番目3番目4番目をチェックすると、3番目1番目4番目のような並びになります。
    できれば順番に並ぶようにしたいのと、imgタグにalt=”画像の説明”を挿入したいです。
    もし方法があればアドバイスをお願いします。

    チェックボックスのチェックする個数があまり多くないならもう一個一個
    if文で条件分岐してはどうでしょう?これなら順番も指定できますし、ファイル名やaltも自由につけれます。

    例)

    <?php
    global $post;
    $Tokuchou = get_post_meta($post->ID,'特徴');
    ?>
    <?php if(in_array("type1",$Tokuchou)):?><img src="type1.gif" alt="タイプ1"><?php endif;?>
    <?php if(in_array("type2",$Tokuchou)):?><img src="type2.gif" alt="タイプ2"><?php endif;?>
    <?php if(in_array("type3",$Tokuchou)):?><img src="type3.gif" alt="タイプ3"><?php endif;?>

    トピック投稿者 single78

    (@single78)

    チェックボックスの項目は15個ほどありますがif文でやってみます。
    ありがとうございました。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「custom field template のcheckboxを利用して選択した画像を表示させる方法」には新たに返信することはできません。