많은 사람들이 query_posts 대신 pre_get_posts 후크를 선호합니다
예이!
그래서 pre_get_posts
필터 WP_Query
개체를 의미 아무것도 를 통해 당신이 할 수있는 query_posts()
당신은을 통해 할 수 $query->set()
와 $query->get()
. 특히 meta_query
속성 을 사용할 수 있습니다 ( Codex 참조 ).
$meta_query = array(
array(
'key'=>'featured',
'value'=>'yes',
'compare'=>'!=',
),
);
$query->set('meta_query',$meta_query);
그러나 .. 이것은 원래 '메타 쿼리'(있는 경우)를 대체합니다. 따라서 원래 메타 쿼리를 완전히 바꾸지 않으려면 다음을 제안합니다.
//Get original meta query
$meta_query = $query->get('meta_query');
//Add our meta query to the original meta queries
$meta_query[] = array(
'key'=>'featured',
'value'=>'yes',
'compare'=>'!=',
);
$query->set('meta_query',$meta_query);
이 방법으로 기존 메타 쿼리와 함께 메타 쿼리를 추가합니다.
메타 relation
속성을 모두 또는 하나 이상 충족하는 게시물을 반환 $meta_query
하기 위해 AND
또는 의 속성 을 설정하지 않을 수도 있습니다 OR
.
* 참고 : 이 유형의 쿼리는 '기능'메타 키가 있지만 값이 아닌 게시물을 반환 yes
합니다. '추천'메타 키가 존재하지 않는 게시물은 포함되지 않습니다. 3.5에서이 작업을 수행 할 수 있습니다 .