Types – Custom Fields and Custom Post Types Managementというプラグインでカスタム投稿タイプを作成し、Custom Field Suiteでカスタムフィールドを実装していたのですが、カスタム投稿タイプを40個くらい作っていたためか、何個か管理画面のメニューバーから消えてしまいました。
Custom Field Suiteを停止すれば正常に表示できたため、カスタムフィールドもTyepsプラグインで作成することに。
そもそもCustom Field Suiteを使っていた理由は、セットで繰り返せるカスタムフィールドが使えるから。
(Custom Field Suiteのカスタムフィールド入力画面)
↑こんな感じでカスタムフィールドをグループ化してそれを何個も追加することができます。
ところがどっこい。Typesのカスタムフィールドを使うと、繰り返しはできるもののグループ化はできませんでした。。そのため、テンプレート側も書き方を変えなくてはならず四苦八苦。
なんとか解決できたので紹介します。
こちらはカスタムフィールド作成側。メイン画像と、サムネイル画像の2つ用意します。
テンプレート側はこんなかんじ。
<ul> <?php if(have_posts()): while(have_posts()):the_post(); $images = get_post_meta( get_the_ID(), 'wpcf-image'); $thumbnails = get_post_meta( get_the_ID(), 'wpcf-thumbnail'); ?> <li><?php if($images){ foreach ((array)$items as $item) { $images[] = $item; } foreach ((array)$items2 as $item) { $thumbnails[] = $item; } foreach($images as $key=>$item1) { $item2 = $thumbnails[$key];?> <?php echo $item1; ?><?php echo $item2; ?> <?php } }else { ?> <?php echo types_render_field('image'); ?>"<?php echo types_render_field('thumbnail'); ?> <?php } ?></li> <?php endwhile; else: ?> <?php endif; ?> </ul>
これで、メイン画像とサムネイル画像が表示されるリストが完成します。html部分は用途に合わせて変えてみてください。
要するに、foreachでメイン画像の繰り返しとサムネイル画像の繰り返しを回して、それを合わせた感じです。
上手く説明できませんがw
注意点は、投稿ページでカスタムフィールドを入力する時に、対応する順番を間違えないこと!
メイン画像1・2・3、サムネイル画像2・3・1という順番になっていると対応して表示されません〜!
それが運用でカバーせずにできるのがCustom Field Suiteなんですよねぇ。