wordpress只搜索单个类别

时间:2014-08-18 08:08:10

标签: php wordpress

我正在索引页面创建一个新闻网站我按类别列出所有新闻我为我的新闻部分之一创建了另外一个类别,这是我现在想要的食谱我正在创建一个搜索 该部分的表单只过滤搜索只有食谱类别,我怎么能这样做我想知道基本上我创建了一个普通的search.php页面按照wordpress标准代码 通过主题过滤新闻。 请帮帮我。

这是表单页面中的代码:

<div class="search_box">
           <form method="get" id="searchform" action="<?php echo esc_url( home_url( '/' ) ); ?>">  
              <div class="input-group">
                      <input type="text" class="form-control search-bar eng my_control" name="s" id="search" placeholder="<?php echo esc_attr_x( 'Search &hellip;', 'placeholder', 'dastak' ); ?>" value="<?php echo esc_attr( get_search_query() ); ?>" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;"/>
                      <span class="input-group-btn">
                        <input type="submit" class="search-submit btn my-btn" value="<?php echo esc_attr_x( 'Search', 'submit button', 'dastak' ); ?>">
                        <!-- <button class="btn my-btn"  id="searchsubmit"  type="button"><span class="glyphicon glyphicon-search"></span></button> -->
                      </span>
              </div><!--input group-->

              </form> 
       </div><!--search box-->


<div class="clearfix"></div>    

2 个答案:

答案 0 :(得分:4)

您可以实现一个函数来捕获搜索,但是在类别___数组中定义类别。

global $wp_query;
if(is_search()) :
    $cat = array(
        'category__in' => array(5) // Where 5 is the ID of your Music category
    );
$args = array_merge( $wp_query->query, $cat );
endif;
query_post($args);

OR

你可以通过隐藏字段这样做 - 值22是类别

<form method="get" id="search form" action="/">
<div>
<input type="text" value="" name="s" id="s" />
<input type="hidden" value="22" name="cat" id="scat" />
<input type="submit" id="search_submit" name="Search" value="Search"/>
</div>
</form>

答案 1 :(得分:0)

您必须挂钩WordPress WP_Query全局实例并添加您想要的任何条件。

开始阅读preg_get_posts WordPress hook。你会找到两个关于类别的例子。