WP_Query에서 게시물 ID를 받으시겠습니까?


27

다음에서 쿼리 된 게시물 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 );

모호한 질문에 대해 죄송합니다.


릭, 귀하의 질문은 모호합니다. 질문을 게시하기 전에 원하는 내용을 명확하게 작성하십시오. 이렇게하면 모든 사람이 관련없는 내용에 응답하지 못하게됩니다. 실제로 게시물 ID 는 배열이 아닌
Pieter Goosen

1
귀하는 wp_reset_postdata이 변경되지 않은 경우, 그렇지 않으면 당신은 포스트 데이터를 재설정 할 수 아닌 if 문 밖에서 내부해야한다
톰 J 노웰

1
ID 만 원한다면 s_ha_dum의 답변을 진지하게 고려해야합니다. 그러면 데이터베이스에서 다른 많은 데이터를 검색하지 않고 ID를 반환합니다.
Chris Rae

답변:


43

시험

$post_ids = wp_list_pluck( $latest->posts, 'ID' );

독서 wp_list_pluck


5
게시물 ID뿐만 아니라 각 게시물에 대한 전체 데이터가 필요한 경우 유용 할 수 있습니다. 그렇지 않으면 @ s-ha-dum의 솔루션으로 갈 것입니다.
Marian

74

fields쿼리 에서 인수를 사용하십시오 .

fields (string)-반환 할 필드입니다. 모든 필드는
기본적으로 반환됩니다 . 다른 두 가지 옵션이 있습니다.- '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);

12
ID를 쿼리하여 모든 것을 정복하고 새 배열에서 ID를 '추적'(루프 및 복원)하는 것보다 훨씬 빠릅니다.
Barry Kooij

아마도 wp_query가 이미 실행 된 후 ID를 가져와야 할 수 있습니다. 예를 들어 두 개의 쿼리를 나중에 병합하고 이전 쿼리에서 결과를 제외하려면 ID가 필요합니다.
trainoasis

2

@ s-ha-dum의 솔루션을 사용하면 id 만 가져오고 이전 쿼리 개체 세트가없는 경우 경제적입니다.

이유는 다음과 같습니다.

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가있는 경우 작업을 수행합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.