Custom Search Query

时间:2014-04-08 作者:Peanut

我想设置一个自定义搜索页面,该页面执行以下操作:

用户以一种他希望在搜索中看到返回的表单(基本上是从标签列表中选择)检查多个项目。

返回与他选择的所有标记匹配的结果(使用和不使用或)。

具体示例如下:

返回标记=“小学”和“公园”的“区域”类别中的所有帖子

我需要为我的搜索表单命名特别的内容吗在搜索结果页面上,如何对自定义查询进行编码,使其能够捕获区域类别内的所有帖子,并具有用户在搜索表单中选择的所有标签的标签

2 个回复
SO网友:Howdy_McGee

1) 您可以使用模板search.phpsearchform.php 作为您的出发点。Creating a Search Page Codex

2) 对于自定义查询,您可以使用pre_get_posts 钩子测试如果你在搜索页面上,那么$_GET 您的值,相应地编辑查询。Action Reference - pre_get_posts

在线上有大量教程和问题可以帮助您解决问题。有些是Simple 而其他人则更Complex. 要做到这一点,你必须做一些真正的研究。希望有帮助!

SO网友:rcadby

为了进行自定义搜索,您需要在html中输入这些内容。您可以使用name和value属性传递到URL。

<input type="hidden" class="category" name="category_name" value="recording">
<input type="hidden" class="type" name="post_type" value="post">
<input type="text" class="search-bar" id="global-search"><button class="search-submit" type="submit" id="search-submit">
然后在脚本文件中,您将要构建URL。

// update search type
let type = $(\'input.type\').val();
if(type === 0 || type == undefined){
  type = "";
}
// update search category
let category = $(\'input.category\').val();
if(category === 0 || category == undefined){
  category = "";
}
// update search keyword
keyword = \'/?s=\' + $(this).val() + \'&post_type=\' + type + \'&category_name=\' + category;
$(\'.search-keyword\').attr(\'data-target\',\'/cimuk\' + keyword);
$(\'.search-keyword .label\').text(\'Search for \' + \'"\' + $(this).val() + \'"\');

//call this function on submit or enter
function goKeyword(){
    window.location.href = $(\'.search-keyword\').data(\'target\')
}
然后可以将此筛选器添加到函数中。php。这将从URL中获取变量并将其传递给搜索查询。

//Search Post type
function mySearchFilter($query) {
    $post_type = $_GET[\'post_type\'];
    $category = $_GET[\'category_name\'];
    if (!$post_type) {
        $post_type = \'any\';
    }
    if (!$category){
        $category = null;
    }
    if ($query->is_search) {
        $query->set(\'post_type\', $post_type);
        $query->set(\'category_name\', $category);
    };
    return $query;
};


add_filter(\'pre_get_posts\',\'mySearchFilter\');
搜索时应加载结果。php

结束

相关推荐

加载随机帖子而不刷新页面(JQuery)?

我真的希望有人能帮忙。当点击“加载新消息”按钮时,我想在主页上随机加载帖子。我们在Wordpress中加载了200条短消息作为帖子。在主页上,我们希望人们能够单击按钮重新加载新消息,但页面不会刷新。请问有人能帮忙做这件事吗?感谢您抽出时间。AB公司