私はこのWebサイトを再構築しています - http://www.mediwales.com/news _ WPプラットフォーム上。灰色のボックス内の検索領域に苦労しています。
地域と日付を削除していますので、それらについて心配する必要はありませんが、キーワードANDセクターで検索を設定するにはどうすればよいですか。
セクターを表す「ニュース」と呼ばれるカスタム分類法を作成しました。私の知る限りでは、通常の検索ではサイト全体でキーワードを検索するだけです。キーワードを検索するように検索を設定することはできますが、セクターが選択されている場合はそのセクター内のキーワードのみを検索することができますか?そして結果を表示します。
更新:
<?php $args = array(
'show_option_all' => '',
'orderby' => 'name',
'order' => 'ASC',
'show_last_update' => 0,
'style' => '',
'show_count' => 0,
'hide_empty' => 1,
'use_desc_for_title' => 1,
'child_of' => 0,
'feed' => '',
'feed_type' => '',
'feed_image' => '',
'exclude' => '',
'exclude_tree' => '',
'include' => '',
'hierarchical' => true,
'title_li' => '',
'show_option_none' => __('No categories'),
'number' => NULL,
'echo' => 1,
'depth' => 0,
'current_category' => 0,
'pad_counts' => 0,
'taxonomy' => 'news',
'walker' => 'Walker_Category' );
?>
<?php echo wp_list_categories($args); ?>
<?php
function Search_with_in_a_tax( &$query ) {
if ( is_search() && isset($_GET['sector_array'])) {
$tax_query = array(
array(
'taxonomy' => 'news',
'terms' => $_GET['sector_array'],
'field' => 'term_id',
)
);
//turn it into a WP_Tax_Query object
$tax_query = new WP_Tax_Query($tax_query);
$query->set("tax_query", $tax_query);
}
}
add_action('pre_get_posts', 'Search_with_in_a_tax', 1);
?>
<form method="get" id="searchform" action="<?php bloginfo('home'); ?>/">
<div><input type="text" size="18" value="" name="s" id="s" />
<input type="submit" id="searchsubmit" value="Search" class="btn" />
</div>
</form>
これが私のこれまでのところです。それはキーワードを検索してニュースを選ぶことのようです。セクターを選択可能にすることはできません(上部のリンクのように)。どうすれば2つをリンクできますか?検索は、そのセクター内でキーワードを検索します(分類法)。
pre_get_posts
hootを使用して、検索クエリを選択したセクターのみに絞り込むことができます。
function Search_with_in_a_tax( &$query ) {
if ( is_search() && isset($_GET['sector_array'])) {
$tax_query = array(
array(
'taxonomy' => 'news',
'terms' => $_GET['sector_array'],
'field' => 'term_id',
)
);
//turn it into a WP_Tax_Query object
$tax_query = new WP_Tax_Query($tax_query);
$query->set("tax_query", $tax_query);
}
}
add_action('pre_get_posts', 'Search_with_in_a_tax', 1);
更新:あなたのテーマのfunctions.phpファイルに上からのコードを入れてください。それから、あなたの中のフォームフィールドとしてカテゴリ(セクター)を出力する必要があります。検索フォームですので、これを試してみてください。
<form method="get" id="searchform" action="<?php bloginfo('home'); ?>/">
<div>
<label for="s">Keyword</label>
<input type="text" size="18" value="" name="s" id="s" />
</div>
<div>
<label for="sector_array">Sectors</label>
<?php
$categories=get_categories(array('orderby' => 'name','order' => 'ASC'));
foreach ($categories as $category) {
echo '<input type="checkbox" name="sector_array[]" value="'.$category->cat_ID.'">'.$category->cat_name;
}
?>
</div>
<div>
<input type="submit" id="searchsubmit" value="Search" class="btn" />
</div>
</form>