基本上,我想做的是在我的WordPress搜索表单上有一些输入字段,如下所示:
All of these words
The exact phrase
Any of these words
None of these words
然后将它们放在一个数组中,以传递到结果页。(请原谅术语-希望这有意义!)
我想的是,例如,如果有人想用“演讲”和“2016”搜索帖子,而不是“2015”或“2014”。
例如,如果我在标准WordPress搜索字段中输入以下内容:
"lecture +2016 - 2014"
我在querystring中得到:
?search_query=lecture+%2B2016+-2012
我需要的是从上面的字段手动创建它。我可以想象,我需要做一些事情,比如在“所有这些单词”字段的每个单词前面加一个加号,在“所有这些单词”字段的单词前面加一个减号?
但我如何访问和更改该查询?
如有任何建议/指示,将不胜感激!
提前感谢!
这是网站用户的要求,因此我试图让表单更直观一些,而不是让用户需要使用负面登录之类的操作符“-2014”
据我所知,如果我能在搜索中以某种方式修改/更改“s”参数,然后再实际“处理”它,那会有什么帮助
因此,如果我有以下几点:
All of these words: "lecture 2016"
None of these words: "2014"
我可以以某种方式提取“s”值,然后将该参数重新生成为如下内容:
$args = array (
\'s\' => \'\\"lecture 2016\\" -2014\',
);
这应该行得通——这是在正确的轨道上吗?
Edit: 使用以下方法获取要更改的s参数:
function search_filter($query) {
if ( !is_admin() && $query->is_main_query() ) {
if ($query->is_search) {
$query->set( \'s\', \'stackoverflow\' );
}
}
}
add_action(\'pre_get_posts\',\'search_filter\');