2016-07-08 7 views
0

私は自分のワードプレスサイトにカスタムポストタイプの検索機能を作成していますが、ACF True/Falseフィールドに基づいて検索結果をフィルタリングする必要があります。 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でequalsを必要とする場合は、 'compare'を '='にする必要があります。

次はあなたが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 ['search']は検索キーワードを自分の引数に渡しません。私は実際にそれがうまくいくかどうかを見るために明示的な値を 's'キーに渡してみました。それは "s"キーが無視されているようだ... Relevanssi検索結果プラグインを使用して私と何か関係があるのだろうか... ... –

+0

それは可能性があります。 SQLクエリを直接渡す '$ wpdb'オブジェクトを使ってみてください。 – Riccardo

+0

私のクエリのパラメータは 's'(例:website.com/?s=NYC)です - もし私が$ _GET ['s']を表示しているのであれば、検索用語を見ることができますが、 s 'は私の質問引数です投稿は表示されません...私が知っているのは、標準のWPループを使用すると、その検索語の結果を見ることができるからです。 –

関連する問題