使用多个分类和关键字进行搜索

时间:2012-06-14 作者:user930026

我已经制定了六个自定义分类法。我想在wordpressFor中使用关键字和自定义分类法进行搜索,例如:我想有一个只有四个自定义分类法(不是全部6个)的下拉列表,然后根据我选择的关键字和自定义分类法过滤搜索。在searchform中。php,我粘贴了代码

<form method="get"  class="search-form" id="searchform" action="<?php echo esc_url( home_url( \'/\' ) ); ?>">
    <fieldset>
        <label for="search">Search:</label>
        <select id="search" class="select" title="Whole Site" name="cat">
                <option value="news">News Articles</option>
                <option value="publications">Publications</option>
                <option value="professionals">Professionals</option>
                <option value="company">Company</option>
        </select>
        <div class="input-holder">
            <input type="text" placeholder="Enter keyword..." class="text" name="s" id="s">  
            <button type="submit" name="submit" class="submit">Search</button>
        </div>
    </fieldset>
</form>
然后在搜索中。php,我检索到select值为$category_index=$_REQUEST[\'cat\']; $ss=$_REQUEST[\'s\'];

此外,我不知道如何过滤。

1 个回复
SO网友:Eugene Manuilov

我建议你用钩子pre_get_posts 行动此操作在从db获取适当的帖子之前触发。在这个钩子中,您可以向查询中添加额外的参数,并对返回的结果产生影响。因此,钩子的基本实现可以如下所示:

add_action( \'pre_get_posts\', \'wpse8170_pre_get_posts\' );
function wpse8170_pre_get_posts( $query ) {
    if ( is_search() ) { // check if it is search page
        $query->set( \'arg\', \'value\' ); // add additional arguments to the query
    }
}
请注意argvalue 参数是通用的,并作为示例提到。您必须使用正确的argvalue 供您查询。可在中读取的查询的所有可用参数列表codex.

结束