Photo Repeat by Thomas Hawk.
先日、Wordpressのテンプレート「Twenty Fifteen」内にカスタムフィールドテンプレートを用いて項目を表示する、という案件がありました。
しかし、以前にそのコーディングをしたのですが、Wordpress のテーマをアップグレードしてしまい、その作業を無駄にしていまいました・・・
教訓!
親テンプレートは弄るな。子テンプレートを作れ。
(ただし、自作テーマの場合はこの限りではない)
ということで、今回の作業を備忘録していきます。
カスタムフィールドテンプレートのforeach処理
今回は「Twenty Fifteen」内に書くので、対象のPHPは「content.php」になります。
そして今回はさらに、このようにしたいと思っています。
- レスポンシブしやすくするため、定義形式(DT-DL-DD)
- もしもカテゴリーが
recruit
だったらに限定 - 該当項目が空白だったら、その項目は非表示
- 複数行にも対応(しなくても良いところもありますが、纏めて対応)
・・・ずばりコーディングするとこうなります。
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
<?php if( in_category("recruit") ){ ?> <dl> <?php $customArray = array("項目1", "項目2", "項目3"); //ずらーっと挙げていきます foreach($customArray as $value){ if ( post_custom($value) ) { ?> <dt><?= $value ?></dt> <dd><?= wpautop ( post_custom($value) ) ?></dd> <?php }; //endif (カスタムフィールドに値があるか) }; //end foreach ?> </dl> <?php }; //endif (求人情報か) ?> |
位置関係を言うと、div.entry-contentが来て、the_content・wp_link_pagesの処理が終わったあとの次です。
子テーマを作れ
今回泣く事になってしまった原因です。
取り敢えず、下記サイトを参照してサクっと作ってきました。
wordpress子テーマの作り方!style.css・各テンプレートファイル・function.php の設定手順 | ゆとり世代のブログ運営論
http://viral-community.com/wordpress/wp-child-theme-5818/
また作る事もあるかも知れないので、今回の style.css も備忘録がてらに貼っておきます。
1 2 3 4 5 6 7 8 9 |
/* Template: twentyfifteen Theme Name: Twenty Fifteen Child Description: Twenty Fifteen の子テーマです。 Author: Author Version: Alpha */ @import url("../twentyfifteen/style.css"); |
Templateのところはディレクトリ名なので、テンプレート名 Twenty Fifteen
と入れない様に注意が必要です。ここでも沼にはまってしまいました・・・。