目次
カスタムフィールドテンプレートのtypeを、テンプレートで利用する場合、少しわかりずらかったので、私の使っているコードをサンプルとしてご紹介します。
濃紺ピッチャーのサイトの中で利用している次の4つについて、利用方法を例を交えながらご紹介したいと思います。
- type = text
- type = textfield
- type = file
- type = radio
条件分岐もあわせたサンプルでご紹介します。
基本的な条件分岐のコード
まずは、どれにでも利用できる、基本的な条件分岐をご紹介します。
1 2 3 4 5 |
<?php if (get_post_meta($post->ID,'ほげほげ',true)): ?> 表示内容 <?php endif; ?> |
「ほげほげ」のフィールドに値が入力されている場合は、その値を表示するという条件分岐です。
これは本当によく利用するコードです。
「type = file」OGP画像の表示方法
ポイント:URLのパスだけを表示させたい注)OGPの推奨が1500pxになりましたね。前は300pxだったので、そのままになっていました。。
設定画面 type = file
1 2 3 4 5 |
[OGPFileUpload] label = 300px × 300pxで作成してください type = file |
labelには、簡単な説明を書いておくと、記事を入力するとき、説明文が表示されてわかりやすいです。
テンプレート type = file
もし、OGPFileUploadに画像をアップロードしている場合は、その画像を表示するというコードです。
1 2 3 4 5 6 7 8 9 |
<?php if (get_post_meta($post->ID,'OGPFileUpload',true)): ?> <meta property="og:image" content="<?php $fileid = get_post_meta($post->ID, OGPFileUpload, false); $file = wp_get_attachment_image_src($fileid[0], 'full'); echo $file[0]; ?>" /> <?php endif; ?> |
「type = radio」ラジオボタンで、表示の条件分岐をする
ラジオボタンで選択した方の内容を表示するというサンプルです。「料理のカテゴリ」というカスタムフィールドの中に、
「今週の料理」と「作ってみたシリーズ」を、チェックボックスで選択することができます。
選択した方の内容を表示したいので、
・「今週の料理」を選んだ場合に表示する内容
・「それ以外(作ってみたシリーズ)」の場合に表示する内容
というように条件を書きます
設定画面 type = radio
1 2 3 4 5 6 |
[料理のカテゴリ] type = radio value = 今週の料理 # 作ってみたシリーズ default = 今週の料理 |
#で区切って、複数作成することができます。
defaltで、最初にcheckedしておきたいものを選べます。
テンプレート type = radio
1 2 3 4 5 6 7 8 |
<?php $tai = get_post_meta($post->ID,"料理のカテゴリ",true); ?> <?php if ($tai == '今週の料理') : ?> <h2 class="cookTitleA">今週の料理</h2> <?php else : ?> <h2 class="cookTitleB">作ってみたシリーズ</h2> <?php endif;?> |
「type = textfield」テキストフィールド
テキストフィールドなので、改行が反映されるようにするのがポイントです。「上記料理の簡単な説明」に値が入っている場合は、その値を表示させます。
設定画面 type = textfield
1 2 3 4 5 6 7 8 |
[上記料理の簡単な説明] type = textarea rows = 5 cols = 100 htmlEditor = true mediaButton = true |
htmlEditor は、文字を編集するエディターを表示させます。
mediaButton は、画像を表示させる為に必要になります。
共にtrueで使うことがきます。
テンプレート type = textfield
1 2 3 4 5 6 7 |
<?php if (get_post_meta($post->ID,'上記料理の簡単な説明',true)): ?> <div class="cookCaption cookTextContents"> <?php global $post; echo nl2br(get_post_meta( $post->ID, '上記料理の簡単な説明', true ) ); ?> </div> <?php endif; ?> |
「type = text」テキスト
1行のただのテキストです。「作り方まとめ」というフィールドに値が入っている場合に、「作り方まとめ」を表示すると書いてあります。
設定画面 type = text
1 2 3 4 5 |
[作り方まとめ] type = text size = 100 |
テンプレート type = text
1 2 3 4 5 6 7 |
<?php if(get_post_meta($post->ID,'作り方まとめ',true)): ?> <li class="cookListSub01"> <?php echo post_custom( '作り方まとめ' ); ?> </li> <?php endif; ?> |
以上が、4つのタグの紹介でした。
この4つだけで、かなり複雑なテンプレートが作成できると思います。