meta_query, 관계 OR & AND를 모두 사용하여 검색하려면 어떻게 해야 합니까?
해결 완료:아래 답변을 참조하십시오.
저는 BOOKS라고 하는 커스텀 포스트 타입이 있습니다.여기에는 다음과 같은 몇 가지 커스텀필드가 있습니다.TITLE
,AUTHOR
,GENRE
,RATING
수정 방법meta_query
커스텀 필드에 검색어가 있는 서적만 포함되도록 하기 위해 아래 코드를 입력합니다.title
,author
,genre
정확하게rating
검색 폼에 지정된 결과가 표시됩니까?
커스텀 검색 폼을 작성했습니다.텍스트 영역에서는,title
,author
그리고.genre
; 및 를 검색하는 드롭다운rating
.그meta_query
아래 검색만 했습니다.title
,author
,그리고.genre
하지만 저는 지금 어떻게 코드를 추가해야 할지 고민하고 있습니다.rating
.
meta_query 관계를 통해 시각적으로 상상한 것은 다음과 같습니다. (제목 OR 작가 OR 장르) 그리고 평가
$args = array(
'relation' => 'OR',
array(
'key' => 'title',
'value' => $searchvalue,
'compare' => 'LIKE'
);
array(
'key' => 'author',
'value' => $searchvalue,
'compare' => 'LIKE'
);
array(
'key' => 'genre',
'value' => $searchvalue,
'compare' => 'LIKE'
);
),
array(
'relation' => 'AND',
array(
'key' => 'rating',
'value' => $ratingvalue,
'compare' => '=',
'type' => 'NUMERIC'
));
당신의 도움과 조언에 매우 감사합니다.
나는 약간의 도움을 받아 해결책을 찾았다.아래 코드는 완벽하게 동작했습니다.
$args => array(
'relation' => 'AND',
array(
'relation' => 'OR',
array(
'key' => 'title',
'value' => $searchvalue,
'compare' => 'LIKE'
),
array(
'key' => 'author',
'value' => $searchvalue,
'compare' => 'LIKE'
),
array(
'key' => 'genre',
'value' => $searchvalue,
'compare' => 'LIKE'
)
),
array(
'key' => 'rating',
'value' => $ratingvalue,
'compare' => '=',
'type' => 'NUMERIC'
)
)
);
약간의 시행착오 끝에 나는 이것에 대한 해결책을 찾았다.meta_query는 "key" 필드의 어레이를 지원하지 않지만 어레이를 "key"로 지정하면 완벽한 솔루션을 얻을 수 있습니다.내가 미친 것처럼 들릴지 모르지만 그것은 매력적으로 작용하고 있다.
$args => array(
'relation' => 'AND',
array(
'key' => array('title','author','genre',),
'value' => $searchvalue,
'compare' => '='
),
array(
'key' => 'rating',
'value' => $ratingvalue,
'compare' => '=',
'type' => 'NUMERIC'
)
)
문자열이 아닌 배열을 전달하고 있기 때문에 "trim()"에 대한 경고만 표시됩니다.해당 경고를 억제하거나 더 나은 해결책을 찾으면 추가해 주십시오.
언급URL : https://stackoverflow.com/questions/18401879/meta-query-how-to-search-using-both-relation-or-and
'it-source' 카테고리의 다른 글
호스트: localhost.증명서의 alt name에 없습니다. (0) | 2023.04.06 |
---|---|
MongoDB 관계: 임베드 또는 참조? (0) | 2023.04.06 |
Mobx - runInAction() 사용.그게 왜 필요하죠? (0) | 2023.04.01 |
식을 '워치 해제'하는 방법 (0) | 2023.04.01 |
nginx에서 certbot을 사용하는 경우 문제 발생 (0) | 2023.04.01 |