2017-11-29 21 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

"categories" taxonomyのカテゴリ名で検索していますか? –

+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> 

引数:

関連する問題