如何在WordPress中使用多个搜索表单
最近,我们向您展示了如何限制WordPress中特定帖子类型的搜索结果。现在我们将向您展示如何完全创建不同/多个搜索表单。这样,每个表单可以限于搜索特定的帖子类型。虽然这不是很难,但它需要您对WordPress模板有基本的了解。
首先,您需要一些搜索表单。将以下代码放在您希望它们位于博客中的任何位置:
<form method="get" id="searchform" action="<?php bloginfo("home"); ?>/"> <input type="text" value="" name="s" id="s" /> <input type="hidden" name="search-type" value="normal" /> <input name="submit" type="submit" value="Go" /> </form>
为了指定此表单将执行的搜索类型,只需更改隐藏字段的值即可。现在它被设置为“正常”但它可以是你想要的任何东西。接下来,我们需要修改search.php文件。打开它并用这段代码替换其中的所有内容(首先将现有代码复制到剪贴板,你需要在一分钟内完成):
<?php if(isset($_GET["search-type"])) { $type = $_GET["search-type"]; if($type == "random") { load_template(TEMPLATEPATH . "/normal-search.php"); } elseif($type == "books") { load_template(TEMPLATEPATH . "/books-search.php"); } } ?>
所以我们假设你有两种搜索形式,普通和书籍。此代码只是将搜索重定向到处理该特定查询的php文件。现在我们只需要创建这些文件。所以,继续创建一个normal-search.php和books-search.php文件(只需用您正在使用的任何值替换“normal”和“books”)。
$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 );
评论被关闭。