是否有一种方法可以检索从以下位置查询的帖子ID数组:
$latest = new WP_Query( array (
\'orderby\' => \'rand\',
\'posts_per_page\' => 3
));
if ( $latest -> have_posts() ) : while ( $latest -> have_posts() ) : $latest -> the_post();
get_template_part( \'templates/content\', \'post\' );
endwhile; endif; wp_reset_postdata();
<小时>
Follow Up:
我用过
wp_list_pluck
要检索帖子ID数组,请执行以下操作:
$post_ids = wp_list_pluck( $latest->posts, \'ID\' );
然后使用内爆函数将数组转换为字符串:
$post_ids_string = implode( \',\', $post_ids );
很抱歉问了个模棱两可的问题。
SO网友:Jankyz
我建议使用此解决方案
get_posts([
\'posts_per_page\' => -1,
\'post_status\' => \'publish\',
\'post_type\' => \'some-custom-post-type\',
\'fields\' => \'ids\',
]);
作为返回,您有一个内部ID为的数组;)
array (size=5)
0 => int 81002
1 => int 77885
2 => int 77180
3 => int 74722
4 => int 73312
SO网友:prosti
如果只需要获取id,并且没有设置以前的查询对象,那么使用@s-ha-dum的解决方案是经济的。
原因如下:
switch ( $q[\'fields\'] ) {
case \'ids\':
$fields = "$wpdb->posts.ID";
break;
case \'id=>parent\':
$fields = "$wpdb->posts.ID, $wpdb->posts.post_parent";
break;
default:
$fields = "$wpdb->posts.*";
因为在这种情况下,您只需指定
\'fields\' => \'ids\'
你不会得到比身份证更多的回报。
如果你愿意\'fields\' => \'id=>parent\'
(看起来很有趣)您还将获得家长ID。
任何其他方式使用\'fields\'
参数将不会对WordPress v4产生任何影响。7.
但如果您有示例中的查询wp_list_pluck
将完成这项工作。