Wordpress Tips

2016.01.28

異なる投稿タイプを紐付けるプラグイン「Posts 2 Posts」

カテゴリー:

「Posts 2 Posts」は、2つのカスタム投稿タイプの記事やユーザーとの紐付けが可能なプラグインです。
各投稿に他の投稿タイプの記事を個別に紐付けられるので、ブログサイトでは関連記事として表示させたりできます。

ダウンロード

1.紐付けの設定 シングルページや固定ページ、カスタム投稿タイプなど、紐付けの設定をfunctions.phpで行います。
2.紐付けるアイテムを選択 各編集ページで紐付けるアイテムを設定します。
3.紐付けたアイテムの出力 紐付けたアイテムを各テンプレートを編集し出力します。

1.紐付けの設定

テーマのfunctions.phpに紐付けるアイテムを登録します。
今回はサンプルで ‘wordpress_tips’ 投稿タイプのアイテムを ‘portfolio’ 投稿タイプのページで表示するように登録しました。

// カスタム投稿タイプの紐付け
function custom_post_relation() {
	p2p_register_connection_type( array(
		'name' => 'plugin_relation', // 紐付けグループの名称
		'from' => 'wordpress_tips', // 出力されるアイテム
		'to' => 'portfolio' // 出力する投稿タイプ
	) );
}
add_action( 'p2p_init', 'custom_post_relation' );

 

2.紐付けるアイテムを選択

編集画面にメタボックスが表示されます。
(今回の例では ‘portfolio’ カスタム投稿タイプ)
posts2posts
投稿ごとに、紐付けるアイテムを選択できます。

3.紐付けたアイテムの出力

紐付けたアイテムを各テンプレートを編集し出力します。
(今回の例では single-portfolio.php のループ内)

通常の出力と同じように、WP_Queryを使って出力できます。

<?php
$args = array(
	'connected_type' => 'plugin_relation', // function.php で登録した紐付けグループの名称
	'connected_items' => get_queried_object() // 紐付けられた記事の情報の取得
);
?>
<?php $loop = new WP_Query( $args ); ?>
<?php if($loop -> have_posts()): ?>
	<ul>
	<?php while($loop -> have_posts()): $loop->the_post();?>
		<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
	<?php endwhile; ?>
	</ul>
<?php endif; ?>
<?php wp_reset_postdata(); ?>

商品などを扱うサイトでは商品とメーカーとの紐付けて表示させるなど、かゆいところに手が届くプラグインです。
今回はご紹介できませんでしたが、ユーザーと紐付けもできたり、さまざまな用途や使い方ができそうです。

ダウンロード

ご相談・ご依頼に関して、まずは

ください。お気軽にどうぞ