WP 쿼리에 표시 할 페이지를 필터링하는 데 문제가 발생했습니다.wordpress WP 쿼리 및 사용자 정의 필드 필터링
Codex WP query reference for custom fields은 ACF (고급 사용자 정의 필드 플러그인 - 문제가되지 않지만 WP 사용자 정의 필드와 동일하게 작동합니다) 매개 변수를 사용하여 페이지를 필터링합니다.
"다중 사용자 정의 필드 처리"단락에서 Codex는 2 가지 조건을 가진 예제를 얻었다. 우리는 OR 또는 AND 관계를 사용할 수 있습니다. 당신이 3 번째 조건 (배열)을 가질 때까지 나는 둘 다 위해 일합니다. 그것은 단지 두 배열을 가지고
'relation' => 'OR',
array(
'key' => 'color',
'value' => 'blue',
'compare' => 'NOT LIKE'
),
array(
'key' => 'price',
'value' => array(20, 100),
'type' => 'numeric',
'compare' => 'BETWEEN'
)
:
그들은 예를 사용합니다. 내가 3 위를했을 때, 아무 것도 보여주지 않습니다. 디버그 모드에서 나는 오류를 볼 수 있습니다 :
WordPress database error: [Lost connection to MySQL server during query]
내가 사용할 때 그것은 작동하지만 OR을 사용해야합니다. 불행히도 MySQL 연결이 끊어집니다. 나는 WP와 동일한 쿼리를 phpMySQL에 요청했다. 그것 문제가 - phpMyAdmin는 동일을 말한다 :
Lost connection
어떤 아이디어? 아마도 필터링을 위해 다른 aproach를 시도해야합니까? (어쩌면 내가 분류를 사용해야합니까?)
여기코드입니다 제가 사용 :
$query_array = array('relation' => 'OR');
array_push($query_array,
array(
'key' => 'filter1',
'value' => 'value1',
'compare' => 'LIKE'
),
array(
'key' => 'filter1',
'value' => 'value2',
'compare' => 'LIKE'
),
array(
'key' => 'filter1',
'value' => 'value3',
'compare' => 'LIKE'
)
);
$args = array(
'order' => $order_array,
'meta_key' => $meta_key,
'orderby' => $orderby,
'post_type' => 'page',
'paged' => $paged,
'post__in' => $postIDs,
'posts_per_page' => 12,
'paged' => get_query_var('paged'),
'meta_query' => $query_array
);
query_posts($args);
?>
(변수를 $에 대한 인수는 물론 설정) 내가 사용할 수없는 이유는
을 모르는 내가 사용 할 수없는 이유
하지만 아마는 다음과 같습니다
$query_array = array('relation' => 'OR');
array_push($query_array,
array(
'key' => 'filter1',
'value' => array('value1', 'value2', 'value3'),
'compare' => 'IN'
)
);
고급 사용자 정의 필드에 대해 everythink입니다! a : 3 : {i : 0; s : 10 : "값 1"; i : 1; s : 11 : "값 2"; i : 2; s : 15 : "값 3";} 그래서 지금은 IN을 LIKE로 만들 필요가 있지만 Array는 필요합니다. 이제 IN은 '='와 같은 배열로 작동합니다. – matliks