您可以使用基本输入字段和URL来完成此操作。
这是因为example.com/?s=test
是“的搜索URL”;测试“;,但是example.com/category/foo/?s=test
也可以工作,并搜索foo类别。
同样,大多数其他参数WP_Query
也需要工作,例如。post_type
.
如果我们再深入一点,所有漂亮的永久链接和WP重写规则都只是将漂亮的URL转换为表单的正则表达式index.php?s=test&cat=foo
等
因此,创建一个表单,给它输入与的键和值匹配的名称和值WP_Query
, 确保它使用GET
作为method
因此它们出现在URL中。
例如,此搜索表单搜索自定义帖子类型:
<form method="get" action="/">
<input type="hidden" name="post_type" value="mycpt" />
<input type="text" name="s" placeholder="search mycpts"/>
<input type="submit" value="search"/>
</form>
请注意,有一个输入字段
post_type
.
您可以使用任何标准HTML输入、文本框、选择下拉列表等扩展此功能,只要name
匹配值WP_Query
接受
然而,值得注意的是,WP搜索并不是很好,改进它的选项也很有限。你也可能会被诱惑通过他们的元值搜索帖子或添加排除,抵制这种诱惑!根据帖子的元数据过滤/搜索帖子的性能成本是巨大的。它太大了,他们构建了一个完全独立的表系统,称为分类法和术语。
要进一步阅读,请参阅WP_Query
https://developer.wordpress.org/reference/classes/wp_query/