カスタムフィールドで投稿IDを指定した記事を一覧を表示させる

ブログやメディアサイトの記事の最後、「おすすめ記事」や「あわせて読みたい記事」のようなかたちで
関連記事の一覧表示がありますよね。
以前こちらの記事でも
同じカテゴリーの記事一覧を表示する方法を書いたんですが、今回は、投稿画面にカスタムフィールドを設置して、表示させたい投稿IDをカンマ区切りで入力する方法です。
使用しているのはカスタムフィールドテンプレートです。

カスタムフィールドを「relate_id」にした場合、post_custom(‘relate_id’)の値を、wp_queryのpost__inにarrayでぶちこめばいけるでしょ!!!!
っで甘く見てたんですが、一筋縄ではいきませんでした 、、、、

だめだったコード

	<?php
                $ids = post_custom('relate_id');
		$wp_query = new WP_Query();
		$param = array(
			'post__in' => array($ids),
			'posts_per_page' => '-1',
			);
		$wp_query->query($param);
		if($wp_query->have_posts()): while($wp_query->have_posts()) : $wp_query->the_post(); ?>

//ループさせる内容

<?php endwhile; endif; wp_reset_query(); ?>

これだと、いっこめの記事しか表示されないのです、、。
$idsの値が、コンマ区切りの数字の羅列として出力させないといけないのでは、、form?
え、どうすれば、、と思っていたら、フォーラムで全く同じことをされている方を見つけました!!!!
カスタムフィールドの値に指定されたIDの記事をループさせたい

ということで下記の通り書き換えて解決!!

	<?php
                $ids = post_custom('relate_id');
		$wp_query = new WP_Query();
		$param = array(
			'post__in' => explode(',',$ids),
			'posts_per_page' => '-1',
			);
		$wp_query->query($param);
		if($wp_query->have_posts()): while($wp_query->have_posts()) : $wp_query->the_post(); ?>

//ループさせる内容

<?php endwhile; endif; wp_reset_query(); ?>

まだまだPHPの勉強が足りません。。がんばります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


top