在earch form.php中使用不带“%s”字段的earch.php

时间:2013-07-08 作者:James J

很抱歉,如果这是一个简单/愚蠢的问题,但我仍在掌握WordPress搜索的功能。

我想用只查询特定自定义帖子类型及其元字段的自定义搜索来完全替换模板中的标准搜索。我有一个搜索表单,可以执行此操作并进行搜索。返回正确数据的php。However, 搜索将不起作用,除非我包含一个名为“s”的输入字段,并且它不是空的。我想WP需要这个来访问搜索。php?

我不需要搜索字段,因为我的搜索是基于自定义分类法和元字段的。那么,如果没有此字段,我如何仍然使用搜索?

这可能吗?

2 个回复
SO网友:Vigs

我不知道如何使用id="s" 在输入字段中。但我想澄清一下,我相信wordpress正在做一些类似的事情$input = $_POST["s"]; 提交搜索时。这个id="s“是必要的,因为它告诉php脚本从哪个html输入字段中提取输入$input 变量并在站点中搜索它。这不是一个解决方案,但希望能解决一些困惑。

SO网友:s_ha_dum

我想这对你自己来说太难了。如果没有所有的细节,我无法提供有效的解决方案,但我建议使用s 参数,而不是试图删除它。正如您所注意到的,该参数很重要。

使用参数加上启用的过滤器pre_get_posts 控制搜索,而不是完全劫持它。

function alter_search_wpse_105761($qry) {
  if ($qry->is_search()) {
    $qry->set(\'post_type\',\'your-post-type\');
    // and other conditions
  }
}
add_action(\'pre_get_posts\',\'alter_search_wpse_105761\');
有很多questions and answers here mentioning pre_get_posts 因此,确定细节应该不难,您可以使用其他细节编辑问题,以获得更具体的回答。

结束

相关推荐

Search posts by Tag

我希望我的搜索表单只显示按标记组织的结果。我知道你可以添加&tag=TAGNAME 但如何将其集成到表单中,以便我的网站只搜索包含与搜索框中输入的内容相同的标记的帖子?我在页面上有两个搜索,因此理想情况下,我希望能够通过HTML将其添加到表单中,而不是其他任何地方,但任何答案都可以:)谢谢