設定編に続き、出力編となります。投稿テンプレートを作成するためには、テーマをカスタマイズしていく必要があります。WordPressテーマを編集することになりますが、コピペでできます。
今回は、「投稿テンプレートを作る」という目的で設定していきます。
目次
出力タグ
基本
<?php if( get_field('フィールド名') ) { ?>
<p><?php the_field('フィールド名'); ?></p>
<?php } ?>
基本的には、get_field(‘フィールド名’) で出力できます。
前後をHTMLやCSSで装飾してやることで、それっぽくなります。
下に書いてくもの以外の時は、基本的にはこれでいけます。
画像(返り値が画像URL)
<?php if( get_field('フィールド名') ) { ?> <img src="<?php the_field('フィールド名'); ?>"> <?php } ?>
get_field(”)で、画像URLが返ってくるので、画像として表示させるには、周りを img src=” “で囲ってあげるだけです。
画像(返り値が画像ID)
<?php if( get_field('フィールド名') ) { ?> <?php $imgid = get_field('フィールド名'); $img = wp_get_attachment_image_src( $imgid , 'full' ); ?> <img src="<?php echo $img[0]; ?>" width="<?php echo $img[1]; ?>" height="<?php echo $img[2]; ?>" alt="<?php the_title_attribute(); ?>"> <?php } ?>
画像IDが返ってくるので、wp_get_attachment_image_src() で、IDに相当する「URL」「width」「height」を配列で取得し、<img>内にそれぞれ配置してやるだけです。画像サイズはお好みでどうぞ。(今回はfull)
チェックボックス(セレクトボックス 複数選択可 の時)
<?php if( get_field('フィールド名') ) { ?> <ul> <?php $check = get_field('フィールド名'); foreach ( (array)$check as $value ) { ?> <li><?php echo $value; ?></li> <?php } ?> </ul> <?php } ?>
セレクトボックスを複数選択可にした場合、チェックボックスと同じ、配列で出力されるので、 foreachを使います。
真/偽
<?php if( get_field('フィールド名') ) { ?> <?php 真の時表示されるもの; } else { 偽の時表示されるもの; ?> <?php } ?>
真/偽そのものを表示することはほとんど無いと思うので、上記のようになります。
ページリンク
<?php if( get_field('フィールド名') ) { ?> <?php $pagelink = get_field('フィールド名'); foreach( (array)$pagelink as $value) { ?> <p>ページリンク:<a href="<?php echo $value; ?>"><?php echo $value; ?></a></p> <?php } ?> <?php } ?>
選択したページのURLが配列として取得できます。
投稿オブジェクト
<?php if( get_field('フィールド名') ) { ?> <?php $post_object = get_field('フィールド名'); foreach ( $post_object as $object ) { ?> <p>投稿オブジェクト:<a href="<?php echo $object->guid; ?>" target="_blank"><?php echo $object->post_title; ?></a></p> <?php } ?> <?php } ?>
選択したページのオブジェクト全体が取得できます。
タクソノミー(返り値がTerm Object)
<?php if( get_field('フィールド名') ) { ?> <?php $term = get_field('フィールド名'); ?> <p>タクソノミー:<?php foreach((array)$term as $value) { ?> <a href="<?php echo get_bloginfo('url') . '/archives/category/' . $value->slug; ?>"><?php echo $value->name; ?></a> <?php if(next($term)!==FALSE){ echo ", ";} ?> <?php } ?> </p> <?php } ?>
オブジェクト型で返ってきます。また、配列です。
ユーザー(セレクトボックス)
<?php if( get_field('フィールド名') ) { $user = get_field('フィールド名'); ?> <p>ユーザー:<a href="<?php echo get_bloginfo('url') . '/author/' . $user['user_nicename']; ?>"><?php echo $user['nickname']; ?></a></p> <?php } ?>
マルチの場合は、配列処理となりますが、あまり使わないので割愛します。
Google Map
<?php if( get_field('フィールド名') ) { $googlemap = get_field('フィールド名'); ?> <script src="//maps.google.com/maps/api/js"></script> <div id="googlemaps" style="width:600px; height:400px;"></div> <script type="text/javascript"> google.maps.event.addDomListener(window,"load",function(){ var mapdiv=document.getElementById("googlemaps"); var myOptions = { zoom:17, center:new google.maps.LatLng("<?php echo $googlemap['lat']; ?>","<?php echo $googlemap['lng']; ?>"), mapTypeId:google.maps.MapTypeId.ROADMAP, scaleControl:true }; var map=new google.maps.Map(mapdiv,myOptions); var marker=[]; var infowindow=[]; marker[0]=new google.maps.Marker({ position:new google.maps.LatLng("<?php echo $googlemap['lat']; ?>","<?php echo $googlemap['lng']; ?>"), map:map, title:"<?php echo $googlemap['address']; ?>" }); }); </script> <?php } ?>
Google Mapの住所/経度/緯度を配列で取得できます。
それらを、GoogleMap APIと共に組み込むと、地図を表示させることが出来ます。
以上の出力タグを、それぞれを表示したい場所へ記述するだけです。
実際に出力してみる
前回の「せあせあ」を実際に出力してみようと思います。
目標: 「ペンギンさんの一言」の下に「せあせあ」を表示させる。
まずは、「外観」→「テーマの編集」に行きましょう。
そして、個別投稿(single.php)にいきます。(右の一覧から探してください)
テーマは、「Simplicity2」を利用させていただいています。
「Simplicity2」では、「entry-body.php」内に記述しているようなので、「entry-body.php」に行きます。
(ご自分の利用されているテーマ内で表示したい場所を探してください。)
【豆知識】Google Chromeを使って、相当する場所を簡単に探す
調べたいページを開いて、「調べたい要素」を右クリックして「検証」をすると、デベロッパーツールが起動し、相当する場所のHTMLを表示してくれます。
「ペンギンさんの一言」の場合、「main」→「post」→「article」→「footer」内にあるということがわかりますね!
「entry-body.php」に来ました。
赤枠で囲ってある場所が、記事本文を表示させている場所です。
そして、青枠が「footer」その下に「ペンギンさんの一言」があります。
Google Chromeで確認したとおりの順番になっていますね。
では、その下にコードを書いていきましょう。
<?php if( get_field('seasea') ) { ?> <h4>せあせあ</h4> <div id="seasea"> <?php the_field('seasea'); ?> </div> <?php } ?>
こんな感じですね。if で囲うことで未入力時には<h4>せあせあ</h4>を表示しないようにしています。
また、<div id=”seasea”></div>で囲うことで、cssを後々編集できるようにしています。
表示を確認してみましょう。しっかりと表示したい場所に表示できていますね。
このような感じで、出力コードを記載していきます。
周りを他のコードで囲んでやることで、簡単にいろいろなものを実装できますね!
このプラグインだけで本当にいろんな事ができそうです。
1 件のコメント