2016-07-08 3 views
0

내 WordPress 사이트에서 사용자 정의 게시물 유형에 대한 검색 기능을 만들고 ACF True/False 필드를 기반으로 검색 결과를 필터링해야합니다. WP_Query를 사용하여 일반 WordPress 루프에서 허용하지 않는 인수를 전달해야하지만 WP_Query를 사용하면 전달 된 인수를 기반으로 모든 게시물이 반환되고 실제 검색 용어는 무시됩니다.검색 결과에 인수 전달

<?php $args = array( 
    'post_type' => 'work', 
    'posts_per_page' => -1, 
    'meta_query' => array(
    array(
     'key' => 'work_hidden', 
     'value' => '0', 
     'compare' => '==' 
    ) 
) 
); 

$the_query = new WP_Query($args); 

if ($the_query->have_posts()) : 
    while ($the_query->have_posts()) { 
    $the_query->the_post(); 
    include "partials/work-card.php"; 
    } 
endif; ?> 

어떻게 WP_Query를 사용하여 검색어와 인수를 포함시킬 수 있습니까?

감사합니다.

답변

0

먼저 SQL에서 같음을 원할 때 '비교'는 단일 '='이어야합니다.

다음 당신이 Documentation에서로 검색 매개 변수를 넣어 가지고, 가정은 $_GET['search']입니다 : 적시에 응답

$args = array( 
    'post_type' => 'work', 
    'posts_per_page' => -1, 
    's' => $_GET['search'], 
    'meta_query' => array(
     array(
      'key' => 'work_hidden', 
      'value' => '0', 
      'compare' => '=' 
     ) 
    ) 
); 
+0

감사합니다! $ _GET [ '검색']은 검색어를 내 인수로 전달하지 않습니다. 나는 실제로 작동하는지 그리고 그렇지 않은지를보기 위해 명시 적으로 's'키에 값을 전달하려고 시도했다. 's'키가 무시되고있는 것 같습니다 ... Relevanssi 검색 결과 플러그인을 사용하여 나와 관련이 있는지 궁금합니다 ... –

+0

그럴 수 있습니다. SQL 쿼리를 직접 전달하는'$ wpdb' 객체를 사용해보십시오. – Riccardo

+0

내 검색어 매개 변수가 's'(예 : website.com/?s=NYC)입니다. - $ _GET [ 's']을 표시하면 내 검색어가 표시 될 수 있지만 값으로 ' s '는 내 쿼리 인수입니다. 게시물이 표시되지 않습니다 ... 표준 WP 루프를 사용하면 해당 검색어에 대한 결과를 볼 수 있기 때문에 내가 아는 사실은 사실이 아닙니다. –