複数の投稿IDで投稿を取得するにはどうすればよいですか?


21

投稿IDの文字列があります:43,23,65。引数としてIDの文字列を
使用get_posts()および使用できることを望んでいました。

しかし、IDで複数の投稿を取得するための関数が見つかりません。

本当にする必要がありWP_queryますか?

また、誰かが使用について言及しているのを見tag_inたことがありますが、これに関するドキュメントは見つかりません。


get_posts() codex.wordpress.org/Template_Tags/get_postsの 'include'引数を使用しようとしましたか?
マイケル

回答:


37

get_posts()と同じ引数を使用するため、使用できますWP_Query

IDを渡すには、'post__in' => array(43,23,65)(配列のみを使用)を使用します。

何かのようなもの:

$args = array(
    'post__in' => array(43,23,65)
);

$posts = get_posts($args);

foreach ($posts as $p) :
    //post!
endforeach;

私はまた、設定したいpost_typeposts_per_pageちょうど良い測定のために。


これは機能しません。
反体制派の怒り

いや?配列として渡しますか?2つのアンダースコア(post__in vs post_in)を使用していますか?post_typeを渡しますか?
CookiesForDevo

1
カスタム投稿タイプを取得する場合はpost_type引数を使用し、5つ以上の結果が必要な場合は'nopaging' => trueオプションを追加します。配列ではなくカンマ区切りの文字列がある場合は、配列explode(',',$input);に変換するために使用します。
ジャズ

1
投稿の順序を渡したい場合はarray、必ずに追加'order_by' => 'post__in'してください$args
rob_st

post_typeパラメーターの使用には注意してください。の場合post、関数はだけでなく、カスタムのものを含むすべてのコンテンツタイプを返しますpost
フュージョン

3

上記が機能しない場合は、必ず追加してくださいpost_type

$args = array(
    'post_type' => 'pt_case_study',
    'post__in' => array(2417, 2112, 784)
);

$posts = get_posts($args);
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.