Posts 2 Postsプラグインでカスタム投稿タイプを関連付ける

電脳備忘録

やりたかったこと

講義というカスタム投稿タイプ(講義内容)と講師というカスタム投稿タイプ(講師のプロフィール)があり、これらを関連付けて講義内容に講師のプロフィールを表示させたい

データのひも付けを実現するにはPosts 2 Postsプラグインを使うようなので、情報を求めてひたすらぐぐりました...。

functions.phpに追記

  • 講義...seminar
  • 講師...lecturer
function lecturer_relationships() {
p2p_register_connection_type( array(
'name' => 'seminar_to_lecturer',
'from' => 'seminar',
'to' => 'lecturer'
) );
}
add_action( 'p2p_init', 'lecturer_relationships' );

single-seminar.phpに追記

カスタムフィールドで入力した講師名(lecturer_name)を表示

<?php
// Find connected weeks
$connected = new WP_Query( array(
'connected_type' => 'seminar_to_lecturer', // the name of your connection type
'connected_items' => get_queried_object(),
'nopaging' => true,
) );
// Display connected weeks
if ( $connected->have_posts() ) : ?>
<?php while ( $connected->have_posts() ) : $connected->the_post(); ?>
<p><?php echo get_post_meta($post->ID,'lecturer_name',TRUE);?></p>
<?php endwhile; ?>
<?php
// Prevent weirdness
wp_reset_postdata();
endif;
?>

カスタム投稿タイプ「講義」のエントリー編集画面で、関連付けるエントリーを選択して保存。
ここでは例として「ごむたろう」講師を関連付けています。 2013-07-07-002.jpg

講義の詳細ページに「ごむたろう」講師が表示されました。 2013-07-07-003.jpg

An Introduction to the Posts 2 Posts Plugin

広告

ブログの維持費に充てるでございます・・・。