WordPressには投稿に対して、「タイトル」と「本文」以外に任意の情報を追加できるカスタムフィールドという大変便利な機能があります。
このカスタムフィールド、functions.phpにコードを追記して自作することもできますが、カスタムフィールドの機能を支援・拡張してくれるAdvanced Custom Fieldsというプラグインを使った方が簡単です。
今回、この便利なプラグインを使って、セレクトボックスタイプのフィールドを作りました。3つの料金が選べるようにしています。
セレクトボックスに設定した値で条件を分岐させる
上記のフィールドにより、3つの料金候補から選択した値を取得することができるようになります。
この取得された値に応じて、それぞれ違う画像を表示させてみることにしました。そのためにはセレクトボックスの値で条件分岐させる必要があります。
条件分岐の方法
カスタムフィールドを使う時は大半がループ内で使用すると思いますが、ご紹介する方法はループ内で使用する場合の記述になります。
<?php $price = get_post_meta($post->ID,"cf_price",true); ?> <?php if ($price == '料金 1,000円') : ?> <img src="<?php bloginfo('template_url'); ?>/images/sub/img_p1000.png" width="163" height="25" > <?php elseif ($price == '料金 2,000円') : ?> <img src="<?php bloginfo('template_url'); ?>/images/sub/img_p2000.png" width="163" height="25" > <?php elseif : ?> <img src="<?php bloginfo('template_url'); ?>/images/sub/img_p3000.png" width="163" height="25" > <?php endif; ?>
get_post_metaでカスタムフィールド情報を取得します。パラメータは前から投稿ID、フィールド名です。ちなみにtrueは登録されている1番目のカスタムフィールドの値を文字列として返します。falseなら登録されている全てを配列で返します。
取得した情報を変数priceに入れます。あとはif~elseif~else構文を使って条件判断するだけです。