我有一个带有帖子ID的字符串:43,23,65
我希望可以使用get_posts()并使用带有ID的字符串作为参数。

但是我找不到用于通过ID检索多个帖子。

我真的需要做WP_query吗?

我也看到有人提到使用tag_in-但我找不到有关的任何文档这个。

评论

您是否尝试过使用get_posts()codex.wordpress.org/Template_Tags/get_posts的“ include”参数?

#1 楼

您可以使用get_posts(),因为它采用与WP_Query相同的参数。

要使用ID传递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只是为了很好的测量。

评论


这行不通。

–异议人士愤怒
15年8月5日在19:22

没有?您是否将其作为数组传递?使用两个下划线(post__in与post_in)?传递post_type?

–CookiesForDevo
15年8月6日在1:10

如果要获取自定义帖子类型,请使用post_type参数,如果要获得5个以上的结果,请添加'nopaging'=> true选项。如果您使用逗号分隔的字符串而不是数组,请使用explode(',',$ input);转换为数组。

–爵士乐
17年1月19日在13:48



如果要保持帖子通过数组传递的顺序,请确保在$ args中添加'order_by'=>'post__in'。

– rob_st
17-10-12在10:17

当心使用post_type参数。在发布的情况下,函数将返回所有内容类型,包括您自定义的内容,而不仅仅是发布。

–融合
19年4月23日在11:49

#2 楼

如果您无法执行上述操作,请确保添加post_type

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

$posts = get_posts($args);