私は最近ワードプレスを学んでいる学生ですが、ワードプレスで作業していますが、デフォルトで自分のウェブサイトに検索フィルターを実装するために、ワードプレスは検索にフィルターを適用したい投稿を検索します。私がやりたいことを簡単な言葉で説明しましょう。データベーステーブルに多数の製品があり、ユーザーは一意の ID または名前で製品を検索できます。ユーザーが選択ドロップダウンを検索すると、一意の ID (ブランド ID) で検索する次のオプションが表示されます。彼は、入力された特定の単語で開始されている製品を検索することができます。wordpressの検索クエリをどのように変更できるか心配です。誰かがこのタスクを実行するのを手伝ってくれますか? 高く評価します。
質問する
4384 次
1 に答える
3
このコードがあなたの開始に少し役立つことを願っています。
function ba_SearchFilter($query) {
if (!$query->is_search) {
return $query;
}
if (isset($_POST['cat'])){
$query->set('category__and', $_POST['cat']);
}
if (isset($_POST['tags'])){
$query->set('tag__and', $_POST['tags']);
}
return $query;
}
//hook filters to search
add_filter('pre_get_posts','ba_SearchFilter');
function ba_search_with_filters(){
$out = '<form role="search" method="get" id="searchform" action="'. home_url( '/' ).'">
<div><label class="screen-reader-text" for="s">Search for:</label>
<input type="text" value="" name="s" id="s" /><br />';
$categories= get_categories();
foreach ($categories as $category) {
$option = '';
$option .= '<input type="checkbox" name="cat[]" id="cat[]" value="'.$category->term_id.'"> ';
$option .= $category->cat_name .'<br />';
$out.= $option;
}
$tags= get_categories();
foreach ($tags as $tag) {
$option = '';
$option .= '<input type="checkbox" name="tags[]" id="tags[]" value="'.$tag->term_id.'"> ';
$option .= $tag->cat_name .'<br />';
$out.= $option;
}
$out .='<input type="submit" id="searchsubmit" value="Search" />
</div>
</form>';
return $out;
}
add_shortcode('search_with_filter','ba_search_with_filters');
?>
必要に応じてコードを変更する必要があります。また、プラグインを見ることができますhttp://wordpress.org/extend/plugins/advance-wp-query-search-filter/
于 2013-03-11T08:01:52.780 に答える