메타 가치별로 게시물 가져 오기


27

cp_annonceur값 이 키인 모든 게시물을 나열하고 싶습니다 professionnel.


8
양해하여 주시기 바랍니다 당신이 문제를 연구 것으로 예상 질문을 게시하기 전에 해결을 시도하고 있습니다. 당신이 여기서 새로운 것이 아니었다면 아마도 질문에 답하지 않고 대답하지 않고 계속 진행했을 것입니다. "스택에 오신 것을 환영합니다"의 정신으로 이것은 당신의 자유 꿀벌입니다. 살펴 보시기 바랍니다 질문하는 방법 미래의 질문을.
s_ha_dum

이것은 아래의 대답이 받아 들여지지 않아서 시간을 잃게 만들었습니다. 그래서 여기에 2 센트를 남겨두고 있습니다. 그는 결코 대답하지 않았고 아래의 대답을 받아들이지 않았습니다. 이 근처에 수십 개의 유사한 질문이있는 동안이 질문을 제거하지 않겠습니까?
mircobabini

답변:


47

당신이 요구하는 것은 meta_query

$args = array(
   'meta_query' => array(
       array(
           'key' => 'cp_annonceur',
           'value' => 'professionnel',
           'compare' => '=',
       )
   )
);
$query = new WP_Query($args);

필요한 모든 정보는 Codex에 있습니다.


3
@Beginner : 문제가 해결되면 "수락 됨"으로 표시하십시오. 왼쪽의 투표 화살표 근처에있는 확인 표시를 찾으십시오.
s_ha_dum

8

이를 수행하는 두 가지 방법이 있습니다.

  1. 에 대한 주요 쿼리를 가로 채십시오 pre_get_posts.

    add_action( 'pre_get_posts', function( $query )
    {
        // only handle the main query
        if ( ! $query->is_main_query() )
            return;
    
        $query->set( 'meta_key',   'cp_annonceur' );
        $query->set( 'meta_value', 'professionnel' );
    } );
  2. 추가 검색어 추가

    $second_loop = get_posts( array(
        'meta_key'   => 'cp_annonceur',
        'meta_value' => 'professionnel',
    ) );

2
get_posts와 짧은 방법을 () 알고 니스
앤드류 웰치

8

맞춤 선택을 사용했습니다 (성능 향상).

$posts = $wpdb->get_results("SELECT * FROM $wpdb->postmeta
WHERE meta_key = 'cp_annonceur' AND  meta_value = 'professionnel' LIMIT 1", ARRAY_A);

https://tommcfarlin.com/get-post-id-by-meta-value/ 에서 영감을 얻었습니다.


1
성능이 더 좋을 수도 있지만 Wordpress 기능을 사용하여 데이터를 검색하고 캐시하는 아이디어를 완전히 버립니다. 또한 WP가 테이블 구조를 변경하기로 결정하면 어떻게됩니까? :)
Erenor Paz

2

WordPress의 메타 쿼리로 원하는 결과를 얻을 수 있습니다.

// the meta_key 'diplay_on_homepage' with the meta_value 'true'
$cc_args = array(
    'posts_per_page'   => -1,
    'post_type'        => 'post',
    'meta_key'         => 'cp_annonceur',
    'meta_value'       => 'professionnel'
);
$cc_query = new WP_Query( $cc_args );

메타 쿼리에 대한 자세한 가이드는 다음 블로그를 참조하십시오 . http://www.codecanal.com/get-posts-meta-values/


post_per_page값이 -1 인 이유를 알 수 있습니까?
Abhay Gawade

1
@AbhayGawade 해당 매개 변수를 사용하여 최대 결과 수를 제한 할 수 있습니다. -1은 제한이 없음을 의미합니다.
Kush
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.