如何在WordPress中使用多个搜索表单

最近我们向您展示了如何在WordPress中限制特定帖子类型的搜索结果。 现在我们将向您展示如何创建不同的/多个搜索表单。 这样每个表单可以被限制为搜索特定的帖子类型。 虽然这不是很困难,但需要您对WordPress模板有一个基本的了解。

首先,你需要一些搜索表单。 将下面的代码放在您希望他们在您的博客中的任何位置:


为了指定此表单将执行的搜索类型,只需更改隐藏字段的值即可。 现在它被设置为“正常”,但它可以是任何你想要的。 接下来,我们需要修改search.php文件。 打开它,并用这段代码替换它中的所有内容(先将现有的代码复制到剪贴板,一分钟后你将需要它):


所以我们会假设你有两种搜索形式,正常的和书籍。 这段代码只是将搜索重定向到处理特定查询的php文件。 现在我们只需要创建这些文件。 所以,继续创建一个正常的search.php和books-search.php文件(只要用你使用的任何值替换“正常”和“书本”)。

现在,在正常的search.php复制并粘贴下面的代码:

$ args = array('post_type'=>'post');
 $ args = array_merge($ args,$ wp_query-> query);
 query_posts($ args); 

紧接着粘贴从search.php文件复制的剪贴板中的循环代码。 在一起,这段代码将只搜索你正常的博客文章。 现在,在books-search.php文件中添加这段代码,然后再次粘贴循环:

$ args = array('post_type'=>'books');
 $ args = array_merge($ args,$ wp_query-> query);
 query_posts($ args); 

这将导致WordPress只搜索“书籍”的自定义帖子类型。 你可以重复这个过程,尽可能多的搜索表单,只要你愿意。