【WordPress】カスタムフィールドを簡単作成したくて「Custom Field Suite」を使ってみました。
知人のホームページ作成で、スケジュール投稿用のカスタムフィールドを作りたくて「Custom Field Suite」を使ってみました。
「Custom Field Suite」を選んだ理由
「Advanced Custom Fields」の方をすすめられたりもしてたんですが、元々フィールドタイプにLoopが有る(入力項目のセットをボタン一発で投稿フォーム上で追加できる機能)って事で「Custom Field Suite」にしてみました。
要はケチりました(笑
使用方法はこちらに詳しくのってたので参考にさせて頂きました。
今回「Custom Field Suite」で作った項目はこんな感じです。
- スケジュールタイトル
- 日付
- 概要
でこのセットをボタンで追加して行ける感じで作ってみました。
ここまでは特に問題なくいけたんですが、問題は出力する方で、単体の項目の出力はすんなりできた物のLoopで増やしたほうの日付の整形のやり方がイマイチわからなくてずーっと悩んでました^^;
日付の項目単体で呼び出す場合
echo date('Y年m月d日', strtotime($cfs->get('birthday')));
これで「2013年04月07日」のような形で出力できるのは分かったんですが、
Loopの場合のループの中だとどこで指定すれば良いんだか迷う事半日(笑
で何とかできたのがこちら
<?php $loop = new WP_Query(array("post_type" => "schedule", "posts_per_page" => 1 )); while($loop->have_posts()): $loop->the_post(); ?> <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <h2><?php the_title(); ?></h2> <h3><?php echo $cfs->get('title'); ?></h3> <ul> <li><?php echo date('Y年m月d日', strtotime($cfs->get('date'))); ?></li> <li><?php echo $cfs->get('summary'); ?></li> </ul> <?php $fields = $cfs->get('Schedule'); foreach ($fields as $field) { ?> <h3><?php echo $field['title']; ?></h3> <ul> <li><?php echo date('Y年m月d日', strtotime($field['date'])); ?></li> <li><?php echo $field['summary']; ?></li> </ul> <?php } ?> </div> <?php endwhile; ?>
こんな感じにしてみました。
まだまだ良くわかって無いんでしらべちゃ~切ったり貼ったりして作ってみたんで「何でこんな?」って箇所もあるかもですが^^;
date(‘Y年m月d日’, strtotime($cfs->get(‘date’))の「$cfs->get(‘date’)」の代わりに「$field[‘date’]」を入れれば良いって気がついてみれば当然な感じでした(笑)
Custom Field Suiteのループをサイドバーで使いたくてさまよっておりました。。
ありがとうございます。
かなりソースが参考になり、動かすことができました。