2017-11-29 1 views
0

내 블로그에 기사 제목과 콘텐츠를 조사하기 위해 성공적으로 노력했지만 meta_query()REGEXP이라는 기사 카테고리의 맞춤 분류에 대한 조사를 마친 후에 작동하지 않았습니다. .Wordpress meta_query taxonomy가 작동하지 않습니다.

내 양식 :

<div class="zone_filters"> 
    <form action="" method="GET"> 
    <input type="hidden" name="page_id" value="249" /> 
    <input type="text" name="search_input" /> 
    <select name="type"> 
     <option value="title">titre et texte</option> 
     <option value="category">catégorie</option> 
    </select> 
    <select name="orderby"> 
     <option value="DESC">plus récent</option> 
     <option value="ASC">plus ancien</option> 
    </select> 
    <button type="submit">OK</button> 
    </form> 
</div> 

내 인수 :

<?php 

$orderby = 'DESC'; 

if($_GET['orderby']) { 

    $orderby = $_GET['orderby']; 
} 

$args = array(
    'post_type' => 'article', 
    'posts_per_page' => 3, 
    'paged' => get_query_var('paged') ? get_query_var('paged') : 1, 
    'orderby' => array('date' => $orderby) 
); 

if($_GET['type'] == 'title') { 

    $args['s'] = $_GET['search_input']; 
} 
elseif($_GET['type'] == 'category') { 

    $value = '^[a-zA-Z|\s]*(' . strtoupper($_GET['search_input']) . '|' . strtolower($_GET['search_input']) . ')[a-zA-Z|\s]*$'; 

    $args['meta_query'] = array(array('key' => 'categories', 'value' => $value, 'compare' => 'REGEXP')); 

} 

$query = new WP_Query($args);?> 

내가 the Codex 에서 배운 나는 내 코드와 문서 사이의 차이를 찾을 수 없습니다.

답변

2

카테고리에 대해 세금 쿼리를 사용합니다. 당신의 HTML에 따라

$args['tax_query'] = array(array('taxonomy' => 'categories', 'field' => 'slug', 'terms' => $value)); 

그것은이 방법으로 일하고있어

<div class="zone_filters"> 
    <form action="" method="GET"> 
    <input type="hidden" name="page_id" value="249" /> 
    <input type="text" name="search_input" /> 
    <select name="type"> 
     <option value="">titre et texte</option> 
     <option value="category-1">Category 1</option> 
     <option value="category-2">Category 2</option> 
     <option value="category-3">Category 3</option> 
    </select> 
    <select name="orderby"> 
     <option value="DESC">plus récent</option> 
     <option value="ASC">plus ancien</option> 
    </select> 
    <button type="submit">OK</button> 
    </form> 
</div> 

<?php 

$orderby = 'DESC'; 

if($_GET['orderby']) { 

    $orderby = $_GET['orderby']; 
} 

$args = array(
    'post_type' => 'article', 
    'posts_per_page' => 3, 
    'paged' => get_query_var('paged') ? get_query_var('paged') : 1, 
    'orderby' => array('date' => $orderby) 
); 

if($_GET['type'] == 'title') { 

    $args['s'] = $_GET['search_input']; 
} 
elseif($_GET['type'] == 'category') { 

    $value = '^[a-zA-Z|\s]*(' . strtoupper($_GET['search_input']) . '|' . strtolower($_GET['search_input']) . ')[a-zA-Z|\s]*$'; 

    $args['tax_query'] = array(array('taxonomy' => 'categories', 'field' => 'slug', 'terms' => $value)); 

} 

$query = new WP_Query($args);?> 
+0

0 결과 ... – Ankomm

+0

중 하나를 사용하지 마십시오 "카테고리"분류 분류에 대한 카테고리 이름으로 검색하고 있습니까? –

+0

네, 이름과 ID로 시도했습니다. – Ankomm

0

:

형태 :

<div class="zone_filters"> 
    <form action="" method="GET"> 
     <input type="hidden" name="page_id" value="249" /> 
     <input type="text" name="search_input" /> 
     <select name="categories"> 

      <?php $allterms = get_terms('categories'); 

      foreach($allterms as $term) : ?> 

       <option value="<?php echo $term->slug; ?>"><?php echo $term->name; ?></option> 

      <?php endforeach ?> 
     </select> 
     <select name="orderby"> 
      <option value="DESC">plus récent</option> 
      <option value="ASC">plus ancien</option> 
     </select> 
     <button type="submit">OK</button> 
    </form> 
</div> 

인수 :

관련 문제