目录
钥匙要点
>如何在WordPress中自定义搜索结果?
我可以使用标签来改善wordpress中的搜索结果?
>如何使用“ query_vars”过滤器更改WordPress中的搜索查询参数?这使您可以将默认的“ S”参数更改为更特定于您的需求的东西。例如,您可以将其更改为'search_term',以使您的URL更加用户友好。
>
首页 CMS教程 &#&按 如何在WordPress网站上添加高级搜索

如何在WordPress网站上添加高级搜索

Feb 20, 2025 pm 12:07 PM

How to Add an Advanced Search to Your WordPress Site

如何在WordPress网站上添加高级搜索

钥匙要点

    通过使用WordPress Core内深处的其他参数,可以增强WordPress搜索表格超出基本Querystring参数“ s”,从而允许更加集中的搜索结果。
  • >搜索结果可以通过类别或标签来改进,分别将其各自的sl子传递到“ category_name”或“ tag”参数。这可以在不需要插件的情况下完成。
  • 使用PHP数组参数可以通过多个值进一步完善高级搜索,可以在WordPress主题的functions.php文件中拦截并设置。这允许用户选择多个标签以进行更集中的搜索。
  • 大多数WordPress搜索表格设置了一个名为“ S”的单个Querystring参数:
  • 这没什么错,我认为这是很多年来的唯一选择。 但是,在没有插件的情况下,可以进行更高级的查询(尽管有很多可用)。在WordPress核心内部,应用程序解析了其他几个Querystring参数,并使用它们来返回一组更为专注的搜索结果集。有一些基本文档列出了参数名称:
附件
<span><span><span><form</span> method<span>="get"</span> action<span>="<?php bloginfo('url'); ?>"</span>></span>
</span><span><span><span><fieldset</span>></span>
</span><span><span><span><input</span> type<span>="text"</span> name<span>="s"</span> value<span>=""</span> placeholder<span>="search&hellip;"</span> maxlength<span>="50"</span> required<span>="required"</span> /></span>
</span><span><span><span><button</span> type<span>="submit"</span>></span>Search<span><span></button</span>></span>
</span><span><span><span></fieldset</span>></span>
</span><span><span><span></form</span>></span></span>
登录后复制
登录后复制
  • 作者
  • fure_name
  • cat
  • > category_name
  • > comment_popup
  • >错误
  • feed
  • 小时
  • m
  • 分钟
  • 月份
  • >名称
  • p
  • page_id
  • >
  • > Pagename
  • > post_parent
  • > post_type
  • 预览
  • 第二
  • >静态
  • >子
  • subpost_id
  • >标签
  • tag_id
  • > tb
  • w
  • 我不相信所有这些工作,而有些工作有些毫无意义,但是它们可以与您可以传递给WP_QUERY的参数相匹配。因此,我们可以使用带有PHP的SMIDGEN的HTML创建高级搜索表格,以使选项自动化。

    按类别搜索
    <span><span><span><form</span> method<span>="get"</span> action<span>="<?php bloginfo('url'); ?>"</span>></span>
    </span><span><span><span><fieldset</span>></span>
    </span><span><span><span><input</span> type<span>="text"</span> name<span>="s"</span> value<span>=""</span> placeholder<span>="search&hellip;"</span> maxlength<span>="50"</span> required<span>="required"</span> /></span>
    </span><span><span><span><button</span> type<span>="submit"</span>></span>Search<span><span></button</span>></span>
    </span><span><span><span></fieldset</span>></span>
    </span><span><span><span></form</span>></span></span>
    登录后复制
    登录后复制
    您可以通过将其slug传递到category_name参数,例如,例如,将结果限制为类别。
    http://yoursite.com/?s=search+term&category_name=kittens
    登录后复制
    我们的搜索表可以使用户将其搜索完善为特定类别:
    <span><span><span><form</span> method<span>="get"</span> action<span>="<?php bloginfo('url'); ?>"</span>></span>
    </span><span><span><span><fieldset</span>></span>
    </span><span><span><span><input</span> type<span>="text"</span> name<span>="s"</span> value<span>=""</span> placeholder<span>="search&hellip;"</span> maxlength<span>="50"</span> required<span>="required"</span> /></span>
    </span><span><span><span><select</span> name<span>="category_name"</span>></span>
    </span><span><span><span><option</span> value<span>=""</span>></span>all categories<span><span></option</span>></span>
    </span><span><span><span><option</span> value<span>="kittens"</span>></span>cute kittens<span><span></option</span>></span>
    </span><span><span><span><option</span> value<span>="puppies"</span>></span>adorable puppies<span><span></option</span>></span>
    </span><span><span><span></select</span>></span>
    </span><span><span><span><button</span> type<span>="submit"</span>></span>Search<span><span></button</span>></span>
    </span><span><span><span></fieldset</span>></span>
    </span><span><span><span></form</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>
    登录后复制
    完善搜索 搜索结果可以通过将其slug传递给标签参数,例如
    http://yoursite.com/?s=search+term&tag=cockroach
    登录后复制
    因此,您的搜索可能会将结果限制为某些标签,例如
    <span><span><span><form</span> method<span>="get"</span> action<span>="<?php bloginfo('url'); ?>"</span>></span>
    </span><span><span><span><fieldset</span>></span>
    </span><span><span><span><input</span> type<span>="text"</span> name<span>="s"</span> value<span>=""</span> placeholder<span>="search&hellip;"</span> maxlength<span>="50"</span> required<span>="required"</span> /></span>
    </span><span><span><span><select</span> name<span>="tag"</span>></span>
    </span><span><span><span><option</span> value<span>=""</span>></span>any tag<span><span></option</span>></span>
    </span><span><span><span><option</span> value<span>="cockroach"</span>></span>cockroaches<span><span></option</span>></span>
    </span><span><span><span><option</span> value<span>="snake"</span>></span>snakes<span><span></option</span>></span>
    </span><span><span><span></select</span>></span>
    </span><span><span><span><button</span> type<span>="submit"</span>></span>Search<span><span></button</span>></span>
    </span><span><span><span></fieldset</span>></span>
    </span><span><span><span></form</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>
    登录后复制
    如果您想通过多个值完善搜索怎么办?例如,用户可以选择两个或多个标签,并且结果页面必须设置所有标签。我们不能仅使用URL参数来实现此目标,但让我们首先定义HTML搜索表格:
    <span><span><span><form</span> method<span>="get"</span> action<span>="<span><?php bloginfo('url'); ?></span>"</span>></span>
    </span><span><span><span><fieldset</span>></span>
    </span><span><span><span><input</span> type<span>="text"</span> name<span>="s"</span> value<span>=""</span> placeholder<span>="search&hellip;"</span> maxlength<span>="50"</span> required<span>="required"</span> /></span>
    </span><span><span><span><p</span>></span>Refine search to posts containing chosen tags:<span><span></p</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>',
    </span></span><span>		<span>'<input type="checkbox" name="taglist[]" value="',  $tag->slug, '" /> ',
    </span></span><span>		<span>$tag->name,
    </span></span><span>		<span>"</label>\n";
    </span></span><span><span>}
    </span></span><span><span>?></span>
    </span><span><span><span><button</span> type<span>="submit"</span>></span>Search<span><span></button</span>></span>
    </span><span><span><span></fieldset</span>></span>
    </span><span><span><span></form</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中文网其他相关文章!

    本站声明
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    热AI工具

    Undresser.AI Undress

    Undresser.AI Undress

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

    AI Clothes Remover

    AI Clothes Remover

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

    Undress AI Tool

    Undress AI Tool

    免费脱衣服图片

    Clothoff.io

    Clothoff.io

    AI脱衣机

    Video Face Swap

    Video Face Swap

    使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

    热工具

    记事本++7.3.1

    记事本++7.3.1

    好用且免费的代码编辑器

    SublimeText3汉化版

    SublimeText3汉化版

    中文版,非常好用

    禅工作室 13.0.1

    禅工作室 13.0.1

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

    Dreamweaver CS6

    Dreamweaver CS6

    视觉化网页开发工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神级代码编辑软件(SublimeText3)

    如何开始WordPress博客:初学者的分步指南 如何开始WordPress博客:初学者的分步指南 Apr 17, 2025 am 08:25 AM

    博客是人们在网上表达观点、意见和见解的理想平台。许多新手渴望建立自己的网站,却因担心技术障碍或成本问题而犹豫不决。然而,随着平台不断发展以满足初学者的能力和需求,现在开始变得比以往任何时候都更容易。 本文将逐步指导您如何建立一个WordPress博客,从主题选择到使用插件提升安全性和性能,助您轻松创建自己的网站。 选择博客主题和方向 在购买域名或注册主机之前,最好先确定您计划涵盖的主题。个人网站可以围绕旅行、烹饪、产品评论、音乐或任何激发您兴趣的爱好展开。专注于您真正感兴趣的领域可以鼓励持续写作

    wordpress文章列表怎么调 wordpress文章列表怎么调 Apr 20, 2025 am 10:48 AM

    有四种方法可以调整 WordPress 文章列表:使用主题选项、使用插件(如 Post Types Order、WP Post List、Boxy Stuff)、使用代码(在 functions.php 文件中添加设置)或直接修改 WordPress 数据库。

    如何在父分类的存档页面上显示子分类 如何在父分类的存档页面上显示子分类 Apr 19, 2025 pm 11:54 PM

    您想了解如何在父分类存档页面上显示子分类吗?在自定义分类存档页面时,您可能需要执行此操作,以使其对访问者更有用。在本文中,我们将向您展示如何在父分类存档页面上轻松显示子分类。为什么在父分类存档页面上显示子分类?通过在父分类存档页面上显示所有子分类,您可以使其不那么通用,对访问者更有用。例如,如果您运行一个关于书籍的WordPress博客,并且有一个名为“主题”的分类法,那么您可以添加“小说”、“非小说”等子分类法,以便您的读者可以

    如何在 WordPress 中获取登录用户信息以获得个性化结果 如何在 WordPress 中获取登录用户信息以获得个性化结果 Apr 19, 2025 pm 11:57 PM

    最近,我们向您展示了如何通过允许用户将自己喜欢的帖子保存在个性化库中来为用户创建个性化体验。您可以通过在某些地方(即欢迎屏幕)使用他们的名字,将个性化结果提升到另一个水平。幸运的是,WordPress使获取登录用户的信息变得非常容易。在本文中,我们将向您展示如何检索与当前登录用户相关的信息。我们将利用get_currentuserinfo(); 功能。这可以在主题中的任何地方使用(页眉、页脚、侧边栏、页面模板等)。为了使其工作,用户必须登录。因此我们需要使用

    如何在 WordPress 中按帖子过期日期对帖子进行排序 如何在 WordPress 中按帖子过期日期对帖子进行排序 Apr 19, 2025 pm 11:48 PM

    过去,我们分享过如何使用PostExpirator插件使WordPress中的帖子过期。好吧,在创建活动列表网站时,我们发现这个插件非常有用。我们可以轻松删除过期的活动列表。其次,多亏了这个插件,按帖子过期日期对帖子进行排序也非常容易。在本文中,我们将向您展示如何在WordPress中按帖子过期日期对帖子进行排序。更新了代码以反映插件中更改自定义字段名称的更改。感谢Tajim在评论中让我们知道。在我们的特定项目中,我们将事件作为自定义帖子类型。现在

    对于初学者来说,WordPress容易吗? 对于初学者来说,WordPress容易吗? Apr 03, 2025 am 12:02 AM

    WordPress对初学者来说容易上手。1.登录后台后,用户界面直观,简洁的仪表板提供所有必要功能链接。2.基本操作包括创建和编辑内容,所见即所得的编辑器简化了内容创建。3.初学者可以通过插件和主题扩展网站功能,学习曲线存在但可以通过实践掌握。

    如何在 WordPress 中显示查询数量和页面加载时间 如何在 WordPress 中显示查询数量和页面加载时间 Apr 19, 2025 pm 11:51 PM

    我们的一位用户询问其他网站如何在页脚中显示查询数量和页面加载时间。您经常会在网站的页脚中看到这一点,它可能会显示类似以下内容:“1.248秒内64个查询”。在本文中,我们将向您展示如何在WordPress中显示查询数量和页面加载时间。只需将以下代码粘贴到主题文件中您喜欢的任何位置(例如footer.php)。queriesin

    如何使用 IFTTT 自动化 WordPress 和社交媒体(及更多) 如何使用 IFTTT 自动化 WordPress 和社交媒体(及更多) Apr 18, 2025 am 11:27 AM

    您是否正在寻找自动化 WordPress 网站和社交媒体帐户的方法? 通过自动化,您将能够在 Facebook、Twitter、LinkedIn、Instagram 等平台上自动分享您的 WordPress 博客文章或更新。 在本文中,我们将向您展示如何使用 IFTTT、Zapier 和 Uncanny Automator 轻松实现 WordPress 和社交媒体的自动化。 为什么要自动化 WordPress 和社交媒体? 自动化您的WordPre

    See all articles