wordpressで独自のqueryから通常のqueryを生成する方法
独自のクエリ変数から標準クエリを生成して実行させる。
カテゴリ指定の検索としてcatというクエリがあり、cat=1,3,5のように複数指定が可能だが、その値を自分で選択させたい場合にこの方法が有効かと思われる。
function search_multi_category() { global $wp_query; if (is_search() && isset($_GET['multicat'])) { $wp_query->query_vars['cat'] = implode(',', $_GET['multicat']); } } add_action('pre_get_posts', 'search_multi_category');
これで以下のようにすると、カテゴリ選択しての検索が可能になる。
<form method="get" action="<?php bloginfo('home'); ?>"> <label for="s"><?php _e('Search:'); ?>(テスト複数カテゴリ)</label> <input type="checkbox" name="multicat[]" value="1" />未分類 <input type="checkbox" name="multicat[]" value="3" />カテゴリ1 <input type="checkbox" name="multicat[]" value="4" />カテゴリ2 <input type="text" name="s" id="s" size="15" /> <input type="submit" value="<?php _e('Search'); ?>" /> </form>