답변:
첫 번째 몇 가지 작업은 다음과 같습니다.
= equals
!= does not equal
> greater than
>= greater than or equal to
< less than
<= less than or equal to
LIKE
그리고 NOT LIKE
당신이 메타 쿼리를 가질 수 있도록, 와일드 카드 기호에 추가 할 수 있도록 SQL 사업자는 그 다음과 같다 :
array(
'key' => 'name',
'value' => 'Pat',
'compare' => 'LIKE'
)
메타 값 "name"에 "Pat"문자열이있는 모든 게시물을 반환합니다. 이 경우 "Pat" "Patricia"및 "Patrick"이 모두 귀하에게 반환됩니다. WordPress 이외의 튜토리얼 설명이 있습니다 .
%
@Herb가 아래 답변 에서 언급 한 것처럼 기본적으로 와일드 카드 문자를 추가하면 와일드 카드 문자를 추가 할 필요가 없습니다 . 이와 같이 : $meta_value = '%' . like_escape( $meta_value ) . '%';
- 소스 참조 .
IN
및 NOT IN
(또는 생략)에 지정된 배열되어있는 일치를 선택. 따라서 다음과 같이 할 수 있습니다.
array(
'key' => 'color',
'value' => array('red', 'green', 'blue')
'compare' => 'IN'
)
색상이 빨간색, 녹색 또는 파란색으로 설정된 모든 게시물을 가져옵니다. 'NOT IN'을 사용하면 배열에있는 것 이외의 값으로 설정된 게시물이 반대로됩니다.
이를 위해 생성 된 SQL은 다음과 같습니다.
SELECT * FROM posts_meta WHERE value IN ("red", "green", "blue")
BETWEEN
그리고 NOT BETWEEN
당신이 올바른 될 수있는 값의 범위를 정의하고 meta_query의 배열에 두 개의 값을 제공하도록 요구 할 수 있습니다 :
array(
'key' => 'price',
'value' => array(20,30)
'compare' => 'BETWEEN'
)
이렇게하면 가격이 20에서 30 사이 인 모든 게시물을 얻을 수 있습니다. 이 사람 은 날짜가 포함 된 예를 찾습니다.
NOT EXISTS
메타 값이 설정되지 않았거나 null 값으로 설정되어 있습니다. 해당 쿼리에 필요한 것은 키 및 비교 연산자입니다.
array(
'key' => 'price',
'compare' => 'NOT EXISTS'
)
이 사람 은 존재하지 않는 메타 값을 쿼리해야했고 다른 사람과 잘 플레이해야했습니다.
도움이 되었기를 바랍니다!
meta_query
배열을 사용하는 경우 키 앞에 접두사를 붙여서는 안됩니다meta_
. 당신이 사용하는 경우$query->meta_key
,$query->meta_value
등 다음이 여전히 접두사를 유지해야한다.