WordPressで二つのカスタム投稿タイプを二重ループ
またちょっと難解なことがあって、できるかなあと思ってたんですが、できました。ええと、何でも良いんですけど、カスタム投稿タイプで論文と、それをまとめたジャーナル、という2つの投稿タイプを持つとします。という時に。
<?php $parm = array( 'post_type' => 'journal', 'showposts' => -1 ); $my_query = new WP_Query($parm); ?> <?php if($my_query->have_posts()): ?> <?php while ($my_query->have_posts()) : $my_query->the_post(); ?> <div class="news_each clearfix"> <span class="news_title"> <strong><?php the_title(); ?></strong> </span> <?php $jid = get_post_meta($post->ID,'ジャーナルID',TRUE);?> <?php $parm = array( 'post_type' => 'report', 'showposts' => -1, 'meta_key' => '収録ジャーナルID', 'meta_value' => $jid, ); $sub_query = new WP_Query($parm); ?> <?php if($sub_query->have_posts()): ?> <?php while ($sub_query->have_posts()) : $sub_query->the_post(); ?> <span class="news_title"> <?php the_title(); ?> </span> <?php endwhile; ?> </div> <?php endif; ?> <?php endwhile; ?> <?php endif; ?>
というようにカスタム投稿タイプのループを入れ子にしてやって、カスタムフィールドの変数を子ループに承継してあげると、親子関係のカスタム投稿タイプを親子関係のループにできますね。
意外とこういうのWordPressではやってなくて(そもそも他のCMSのデータベースから持って来たデータを流用しないといけないかったからという理由もあるが)、こういうやり方もあるんだなあと学びました。これも案件によっては応用可能性ありそうですね。

加藤 康祐 / 企画・設計
プランナー、デザイナー。加藤康祐企画設計代表。Webデザインを入り口に、2005年よりフリーランスとしてのキャリアスタート。主な仕事としてベンチャー企業でのサービスのUXデザイン、独法との防災メディアの運営、社会的養護の子どもたちの自立を支援するNPOのサポート。ラグビーと料理、最近イラスト。
是非、フォローしてください!
Twitter / Instagram
売り上げランキング: 14,705
100円
フリーランスとして働き始めるってどういうことだったのか?フリーランスとして働くってどういうことなのか?フリーランスが目指すことってなんなのか?5年間の自分の経験から書きました。(2010年執筆)