WP_Query-메타 값별 주문 결과


49

나는 주변을 확인했지만 아직 효과가있는 답변을 보지 못했습니다. 다음과 같은 주장을 가진 WP_Query가 있습니다.

$args = array(
    'post_status' => 'publish',
    'post_type' => 'listing',
    'meta_key' => 'client_feedback_score',
    'orderby' => 'client_feedback_score',
    'order' => 'DESC'
        );

$query = new WP_Query($args);

맞춤 게시물 입력란 'client_feedback_score'(최저에서 최고)로 결과를 주문하고 싶습니다. 그러나 이것은 효과가없는 것 같습니다 ... 누구든지 올바른 방향으로 나를 가리킬 수 있습니까?

편집 (해결) :

Milo의 ​​답변 덕분에 수치 메타 값으로 주문하는 작업 코드는 다음과 같습니다.

$args = array(
            'post_status' => 'publish',
            'post_type' => 'listing',
            'meta_key' => 'client_feedback_score',
            'orderby' => 'meta_value_num',
            'order' => 'DESC'
        );

답변:


69

orderbymeta_value_num또는 meta_value키 이름이 아니 어야합니다 . WP_Query orderby 매개 변수를 참조하십시오 .


간병을 일으켜 친구를 응원하십시오.
Adam Moss

5
작은 메모, meta_key아직 게시물에 존재하지 않으면 게시물이 무시됩니다.
adamj

1
@RobBenz 아마도이 주제에 관한 새로운 질문을 시작해야 할 것입니다. 1 단계 메타 키에 원하는 값을 지정하고이를 호출 my_meta_key하여 각 게시물에 원하는 순서를 생성하십시오. 2 단계 meta_key쿼리에서을 (를) 설정 했습니다 my_meta_key. 이렇게하면 해당 키가있는 게시물을 쿼리하도록 WordPress에 지시합니다. 3 단계 orderby검색어를로 설정 합니다 meta_value_num. 이렇게하면 WordPress에으로 게시물을 쿼리 할뿐만 아니라 my_meta_key해당 키를 기준으로 숫자를 정렬하도록 지시합니다. 이 쿼리 인수는 사용자가 보거나 사용할 수있는 유일한 장소 meta_value_num입니다.
Milo

1
@ adamj이 해결 방법이 있습니까? 게시물에 meta_key가 있는지 여부에 관계없이 모든 게시물을 정렬해야합니다.
unbreak

1
@unbreak 간단한 해결책은 meta_key주문 조회를 실행하기 전에 모든 게시물을 파싱하고 추가하는 것입니다.
adamj
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.