私は以下から照会された投稿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();
ファローアップ:
私はwp_list_pluck
を使って投稿IDの配列を取得しました:
$post_ids = wp_list_pluck( $latest->posts, 'ID' );
その後、関数implodeを使って配列を文字列に変換します。
$post_ids_string = implode( ',', $post_ids );
あいまいな質問でごめんね。
クエリでfields
引数を使用してください。
fields(string) - どのフィールドを返すかすべてのフィールドはによって返されます。
デフォルト。他に2つのオプションがあります。 - 'ids' - 投稿IDの配列を返します。 - 'id => parent' - 連想配列[parent => ID、…]を返します。http://codex.wordpress.org/Class_Reference/WP_Query#Return_Fields_Parameter
$latest = new WP_Query( array (
'orderby' => 'Rand',
'posts_per_page' => 3,
'fields' => 'ids'
));
var_dump($latest->posts);
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'
だけを指定するのであれば、IDよりも何も得られません。
もしあなたが'fields' => 'id=>parent'
(本当に面白いように見えます)と一緒に行くなら、あなたはまた親IDのものを得るでしょう。
'fields'
引数を使用する他の方法は、WordPress v4.7からは影響を受けません。
しかし、例のようなクエリがある場合は、wp_list_pluck
が役目を果たします。