钥匙要点
-
通过使用WordPress Core内深处的其他参数,可以增强WordPress搜索表格超出基本Querystring参数“ s”,从而允许更加集中的搜索结果。
- >搜索结果可以通过类别或标签来改进,分别将其各自的sl子传递到“ category_name”或“ tag”参数。这可以在不需要插件的情况下完成。 使用PHP数组参数可以通过多个值进一步完善高级搜索,可以在WordPress主题的functions.php文件中拦截并设置。这允许用户选择多个标签以进行更集中的搜索。
- 大多数WordPress搜索表格设置了一个名为“ S”的单个Querystring参数:
- 这没什么错,我认为这是很多年来的唯一选择。 但是,在没有插件的情况下,可以进行更高级的查询(尽管有很多可用)。在WordPress核心内部,应用程序解析了其他几个Querystring参数,并使用它们来返回一组更为专注的搜索结果集。有一些基本文档列出了参数名称:
<span><span><span><form> method<span>="get"</span> action<span>="<?php bloginfo('url'); ?>"</span>></form></span> </span><span><span><span><fieldset>></fieldset></span> </span><span><span><span><input> type<span>="text"</span> name<span>="s"</span> value<span>=""</span> placeholder<span>="search…"</span> maxlength<span>="50"</span> required<span>="required"</span> /></span> </span><span><span><span><button> type<span>="submit"</span>></button></span>Search<span><span></span>></span> </span><span><span><span></span>></span> </span><span><span><span></span>></span></span></span></span></span></span>
<span><span><span><form> method<span>="get"</span> action<span>="<?php bloginfo('url'); ?>"</span>></form></span> </span><span><span><span><fieldset>></fieldset></span> </span><span><span><span><input> type<span>="text"</span> name<span>="s"</span> value<span>=""</span> placeholder<span>="search…"</span> maxlength<span>="50"</span> required<span>="required"</span> /></span> </span><span><span><span><button> type<span>="submit"</span>></button></span>Search<span><span></span>></span> </span><span><span><span></span>></span> </span><span><span><span></span>></span></span></span></span></span></span>您可以通过将其slug传递到category_name参数,例如,例如,将结果限制为类别。
http://yoursite.com/?s=search+term&category_name=kittens我们的搜索表可以使用户将其搜索完善为特定类别:
<span><span><span><form> method<span>="get"</span> action<span>="<?php bloginfo('url'); ?>"</span>></form></span> </span><span><span><span><fieldset>></fieldset></span> </span><span><span><span><input> type<span>="text"</span> name<span>="s"</span> value<span>=""</span> placeholder<span>="search…"</span> maxlength<span>="50"</span> required<span>="required"</span> /></span> </span><span><span><span><select> name<span>="category_name"</span>></select></span> </span><span><span><span><option> value<span>=""</span>></option></span>all categories<span><span></span>></span> </span><span><span><span><option> value<span>="kittens"</span>></option></span>cute kittens<span><span></span>></span> </span><span><span><span><option> value<span>="puppies"</span>></option></span>adorable puppies<span><span></span>></span> </span><span><span><span></span>></span> </span><span><span><span><button> type<span>="submit"</span>></button></span>Search<span><span></span>></span> </span><span><span><span></span>></span> </span><span><span><span></span>></span></span></span></span></span></span></span></span></span></span>如果您想列出所有类别,请在标签:
>通过TAG
<span><span><?php </span></span><span><span>// generate list of categories </span></span><span><span>$categories = get_categories(); </span></span><span><span>foreach ($categories as $category) { </span></span><span> <span>echo '<option value="', $category->slug, '">', $category->name, "</option>\n"; </span></span><span><span>} </span></span><span><span>?></span></span></span>完善搜索 搜索结果可以通过将其slug传递给标签参数,例如
http://yoursite.com/?s=search+term&tag=cockroach因此,您的搜索可能会将结果限制为某些标签,例如
<span><span><span><form> method<span>="get"</span> action<span>="<?php bloginfo('url'); ?>"</span>></form></span> </span><span><span><span><fieldset>></fieldset></span> </span><span><span><span><input> type<span>="text"</span> name<span>="s"</span> value<span>=""</span> placeholder<span>="search…"</span> maxlength<span>="50"</span> required<span>="required"</span> /></span> </span><span><span><span><select> name<span>="tag"</span>></select></span> </span><span><span><span><option> value<span>=""</span>></option></span>any tag<span><span></span>></span> </span><span><span><span><option> value<span>="cockroach"</span>></option></span>cockroaches<span><span></span>></span> </span><span><span><span><option> value<span>="snake"</span>></option></span>snakes<span><span></span>></span> </span><span><span><span></span>></span> </span><span><span><span><button> type<span>="submit"</span>></button></span>Search<span><span></span>></span> </span><span><span><span></span>></span> </span><span><span><span></span>></span></span></span></span></span></span></span></span></span></span>同样,您可以为选择字段生成所有标签的列表:
前进的高级搜索
<span><span><?php </span></span><span><span>// generate list of tags </span></span><span><span>$tags = get_tags(); </span></span><span><span>foreach ($tags as $tag) { </span></span><span> <span>echo '<option value="', $tag->slug, '">', $tag->name, "</option>\n"; </span></span><span><span>} </span></span><span><span>?></span></span></span>如果您想通过多个值完善搜索怎么办?例如,用户可以选择两个或多个标签,并且结果页面必须设置所有标签。我们不能仅使用URL参数来实现此目标,但让我们首先定义HTML搜索表格:
<span><span><span><form> method<span>="get"</span> action<span>="<span><?php bloginfo('url'); ?></span>"</span>></form></span> </span><span><span><span><fieldset>></fieldset></span> </span><span><span><span><input> type<span>="text"</span> name<span>="s"</span> value<span>=""</span> placeholder<span>="search…"</span> maxlength<span>="50"</span> required<span>="required"</span> /></span> </span><span><span><span><p>></p></span>Refine search to posts containing chosen tags:<span><span></span>></span> </span><span><span><?php </span></span><span><span>// generate list of tags </span></span><span><span>$tags = get_tags(); </span></span><span><span>foreach ($tags as $tag) { </span></span><span> <span>echo </span></span><span> <span>'<label>', </label></span></span><span> <span>'<input type="checkbox" name="taglist[]" value="', $tag->slug, '"> ', </span></span><span> <span>$tag->name, </span></span><span> <span>"\n"; </span></span><span><span>} </span></span><span><span>?></span> </span><span><span><span><button> type<span>="submit"</span>></button></span>Search<span><span></span>></span> </span><span><span><span></span>></span> </span><span><span><span></span>></span></span></span></span></span></span></span></span>请注意,我使用了名为taglist的PHP数组参数 。您可以使用WordPress已保留的名称以外的任何名称(请参见上面的列表)。 现在,我们可以在WordPress主题的functions.php文件中拦截搜索提交。 Advanced_search_query函数检测是否有效搜索,然后相应地设置WP_QUERY TAG_SLUG__和参数。
<span>// advanced search functionality </span><span>function advanced_search_query($query) { </span> <span>if($query->is_search()) { </span> <span>// tag search </span> <span>if (isset($_GET['taglist']) && is_array($_GET['taglist'])) { </span> <span>$query->set('tag_slug__and', $_GET['taglist']); </span> <span>} </span> <span>return $query; </span> <span>} </span> <span>}</span>最后,我们使用pre_get_posts操作钩在执行查询之前运行我们的高级_search_query函数: 将高级搜索设施添加到WordPress非常容易,但很少有开发人员意识到这是可能的……也许是因为文档和示例有点稀疏
。我偶然发现了它,希望您在下一个WordPress项目中发现此代码很有用。
在WordPress中经常询问有关高级搜索的问题>如何在WordPress中自定义搜索结果?
>可以通过使用WP_QUERY类自定义WordPress中的搜索结果。此类允许您定义特定参数来调整搜索结果。例如,您可以将参数设置为仅在帖子标题中搜索,排除某些帖子类型,甚至在自定义字段中搜索。您还可以使用提供高级搜索自定义选项的searchwp之类的插件。
我可以使用标签来改善wordpress中的搜索结果?
是的,标签可以显着改善WordPress中的搜索结果。通过使用get_the_tags()函数,您可以检索与特定帖子关联的标签。这可以用来创建更精致的搜索体验,从而使用户可以搜索具有特定标签的帖子。
>如何使用“ query_vars”过滤器更改WordPress中的搜索查询参数?这使您可以将默认的“ S”参数更改为更特定于您的需求的东西。例如,您可以将其更改为'search_term',以使您的URL更加用户友好。
> wordpress中的wp_query是什么?
wp_query是WordPress中的一类,可以创建自定义自定义查询和循环。它提供了许多参数,您可以使用这些参数来自定义查询,例如Post类型,类别,标签,作者等。这使其成为创建高级搜索功能的功能强大的工具。
>我如何从WordPress中的搜索结果中排除某些帖子类型?
>可以使用' pre_get_posts的动作钩与WP_QUERY类结合使用。您可以将“ post_type”参数设置为要在搜索结果中包含的帖子类型的数组,有效地排除了所有其他内容。我可以在WordPress中的自定义字段中搜索吗?是的,您可以使用WP_QUERY中的“ meta_query”参数在WordPress中的自定义字段中搜索。这使您可以指定一个自定义字段键和值,并返回与这些条件相匹配的帖子。
>
>如何改善WordPress中的搜索功能?通过使用SearchWP,Ressienanssi或Ajax Search Pro等插件。这些插件提供了高级搜索功能,例如部分匹配,关键字steamming和搜索权重,提供更好的用户体验。>
我可以在没有插件的情况下在WordPress中创建搜索表格吗?可以通过使用get_search_form()函数在无插件的情况下在WordPress中创建搜索表格。此函数生成了搜索表格的HTML,您可以自定义以适合您的需求。>
如何在WordPress中显示搜索查询? get_search_query()函数。此函数检索搜索查询字符串,可用于在您的搜索结果页面上显示搜索词。我可以限制WordPress中的搜索结果数吗?通过使用WP_QUERY中的“ post_per_page”参数在WordPress中的搜索数量。这使您可以指定每个页面显示的帖子数,从而有效地限制了搜索结果的数量。
以上是如何在WordPress网站上添加高级搜索的详细内容。更多信息请关注PHP中文网其他相关文章!

为WordPress开发选择正确的集成开发环境(IDE) 十年来,我探索了WordPress开发的许多集成开发环境(IDE)。 纯粹的品种 - 从免费到商业,基本到FEA

本教程演示了使用面向对象的编程(OOP)原理构建WordPress插件,利用Dribbble API。 让我们在保留原始含义和结构的同时完善文本以清晰和简洁。 object-ori

将PHP数据传递给JavaScript的最佳实践:WP_LOCALIZE_SCRIPT和WP_ADD_INLINE_SCRIPT的比较 在PHP文件中将数据存储在静态字符串中是建议的练习。 如果在您的JavaScript代码中需要此数据,请合并

本指南演示了如何使用WordPress PDF插件在WordPress帖子和页面中嵌入和保护PDF文件。 PDFS为从目录到演示文稿提供了一种用户友好的,普遍访问的格式。 此方法ENS


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

Atom编辑器mac版下载
最流行的的开源编辑器