WordPress搜索:有用的插件和代码片段

编者注: 有关此帖子的更新版本, 请在此处查看。

WordPress是一个功能强大的CMS工具,不仅为博客提供支持,而且为众多论坛和个人网页提供支持。 提供的许多功能对于市场来说是相当先进的,但是它们的搜索似乎仍然滞后。 这些功能为非常复杂的问题提供了非常简单的解决方案-在您的站点上找到正确的内容!

尽管该功能非常适合基于直接匹配来搜索文章,但该系统在许多可能的用途上仍存在不足。 更具体地说,无法在所有类别,标签,甚至特定类别和/或标签之间进行搜索。 同样,所有帖子默认按日期显示,从最新到最早。 这在UX方面是一个巨大的差距,对于那些可能会在观看次数或评论次数最多的热门文章中寻找用户的情况又如何呢?

下面,我简要介绍了WordPress的搜索功能以及它们在系统中的工作方式。 了解一切开箱即用的方式,将使搜索操作变得更加容易。 此外,我添加了一些功能强大的插件和代码段,这些都是任何WP网站都需要的。

WordPress搜索基础

通过WordPress运行搜索查询时,所有结果都会根据发布时间返回。 如果WordPress设置了此功能,则其中将包括页面,这将是很棒的。 两个出色的插件Search UnleashedSearch Everything提供了修复程序,允许用户搜索页面和评论。 一个主要问题是WordPress如何忽略搜索中关键字的功能。

WordPress搜索:有用的插件和代码片段

如果一篇文章是在一两年前发表的,那么在搜索中发现该文章的几率很小。 除非用户将他们想要的关键字输入到更大的引擎(如Google或Bing)中, 当您搜索“网页设计”时,WordPress会寻找与之完全匹配的东西。 WordPress开发人员可能正在进行更新,但是这样的查询不会返回仅包含design的结果。

同样,帖子类别和标签如何? 这些可以在关键字中匹配,从而引发整个搜索。 与大多数工具相比,WordPress搜索背后的独特功能是史前的,值得庆幸的是,该系统可以在开发社区内部公开更新。

WordPress主题文件

每个WordPress Themes文件夹中都有一组搜索文件。 这些对于功能强大的搜索表单似乎很有用。 在根模板文件search.php中,您将找到用于搜索结果的常规模板。

很多时候,我会听到开发人员捏造将他们的search.php包含在另一个核心文件(例如page.phpsingle.php)中的错误 这是构建模块化模板的强大技术,但是直接搜索文件仅用于显示分页和结果。 标准文件名searchform.php将包括一些用于调用搜索查询数据的基本PHP代码。 文件的其余部分是纯HTML表单,包括一(1)个输入字段和一个提交按钮。

WordPress搜索:有用的插件和代码片段

此文件通常包含在模板的标题或侧栏区域中。 它提供了一种优雅的解决方案,其中包括现成的表单,用户可以利用WordPress中提供的许多强大的搜索技术。 通过HTML5中的许多新属性,可以在输入字段中提供默认文本,例如“搜索...”或“在此处输入术语”。

当输入数据以显示您的搜索表单时,简单的例程可能会让您感到惊讶。 有一个写为get_search_form()的简单函数,可以将其添加到模板的任何位置以显示searchform.php的内容。 这是WordPress开发的内部功能,用于简化搜索功能的开发!

WP查询功能

WordPress的后端中写入了一个函数,可用于直接SQL查询。 WP_query()已被WordPress开发人员和主题设计人员用于创建自定义搜索查询,该查询比WordPress的默认查询更为复杂。

WordPress搜索:有用的插件和代码片段

如果您是开发人员,我建议您通读功能参考页以对方法进行一些了解。 该文档很长,可能很多人不会使用。 有一些真正的功能,例如根据页面上当前显示的内容拉特定的帖子或类别。

查询功能还允许检查当前页面值。 WordPress将会给对您网站上的每种类型的页面的名称。 博客文章,页面,搜索结果和主页只是几个示例。 下面,我为有兴趣在表面之下进行检查的人员概述了常见页面变量的简要列表。

  • $is_single –查看单个帖子页面
  • $is_author –查看作者发布目录页面
  • $is_search –查看搜索结果页面
  • $is_category$is_tag –按类别或标签查看帖子列表
  • $is_404 –查看404错误页面

16个增强搜索功能的插件

下面,我提供了一些与搜索和查询相关的流行插件的链接。 这些都是免费的,可以从WordPress的官方扩展目录中下载。 我强烈建议您一次不要安装其中的2或3个-请仔细阅读说明并逐一进行测试,看看是否有完全适合您的博客的内容!

Google自定义搜索插件在WordPress中搜索的默认选项并不是真正的最佳解决方案。 通常,网站站长宁愿通过Google进行搜索查询,以获得更快,更有针对性的结果。 安装后,此插件将使用自定义Google搜索自动重写默认的WordPress搜索表单。 即时采用一组新的友好URL!

WordPress搜索:有用的插件和代码片段

增强的搜索表单默认情况下,WordPress搜索表单是标准输入字段。 这对于涉及特定关键字的基本查询非常有用,但是对于高级用户而言,默认选项不够。 增强型搜索表单将动态生成一个XHTML表单,该表单接受新的搜索词,例如布尔AND语句。

WordPress搜索:有用的插件和代码片段

搜索所有内容 Search Everything是另一个出色的多合一插件,可满足您的高级搜索需求。 一些最受欢迎的功能包括搜索突出显示,自定义分类法,浏览批准的评论等等! 管理面板非常简单,设置很容易。

WordPress搜索:有用的插件和代码片段

WordPress Sphinx搜索插件 Sphinx服务器可以将繁重的搜索查询从您的服务器上转移到其他远程设置中。 **后,您会注意到超快的速度,并能够根据新鲜度和相关性对结果进行排序。 此外,该插件还可以显示最新和最相关的搜索关键字的侧边栏小部件。

WordPress搜索:有用的插件和代码片段

Search Meter Search Meter对于那些对跟踪分析感兴趣的网站管理员来说是一个有趣的想法。 每个搜索查询都存储在管理面板中,并带有检查搜索分析的其他详细信息。 系统会为您提供有关失败搜索或未显示任何结果的搜索次数以及热门和近期搜索字词的数据。 插件将生成统计信息,您可以重置或导出以进行检查。

WordPress搜索:有用的插件和代码片段

快速WordPress搜索快速WordPress搜索是WordPress默认引擎的基本替代插件。 通常,这将返回更多相关的页面,并稍微加快该过程。 编写该过程是为了与WP的功能丰富的库一起使用,以减少数据库调用并为密集查询返回更快的结果。 该安装还随附基准工具以比较时间。

WordPress搜索:有用的插件和代码片段

Amazon Search Widget如果您使用Amazon的会员计划,那么您会喜欢下一个插件。 通过几个简单的步骤和一个模板编辑,实现基于Flash的搜索表单非常方便。 这将在亚马逊的图书馆中进行搜索,以获取有关产品和新版本的数据。 从这里开始,这是一个简单的过程,只需输入您的会员ID,即可开始通过博客搜索赚钱!

WordPress搜索:有用的插件和代码片段

宽松的搜索插件在这里,我们有一个很小的插件,安装后马上就有很高的期望。 松散搜索插件会修改WordPress库中已经内置的流程,以匹配关键字而不是完整术语。 跳过了常见英语单词的内部词典,以加快搜索过程。 如果您正在寻找要安装的基本插件并获得最快的结果,我强烈建议您使用此插件。

WordPress搜索:有用的插件和代码片段

Dave的WordPress实时搜索如果您是Microsoft实时搜索的粉丝,那么这个简单的插件将增强您的博客体验。 通过Live Search提供结果将比内部处理具有更高的相关性和更快的加载时间。 该插件可以根据用户类型提供即时的最新结果-所有这些都通过jQuery和一些基本CSS样式在幕后提供。 尝试安装并查看您的博客是否可以处理页面加载,因为它为搜索结果提供了惊人的用户体验。

WordPress搜索:有用的插件和代码片段

搜索标签云此插件可让您轻松访问以开发简单的标签云。 随着更多的链接进入您的博客页面,这将使Google获得很高的排名。 此外,当您考虑单击几下即可找到多少帖子时,用户体验会大大提高。 该插件需要标准的安装步骤,并且在开发时就考虑了SEO。

WordPress搜索:有用的插件和代码片段

突出显示搜索词您可能已经在当今无数博客中看到了此插件。 每当访问者通过主要搜索引擎(Google,Yahoo!,Bing,Lycos,Ask…)找到您的页面时,每个关键字都会在您的内容中突出显示。 这可以帮助访问者弄清楚页面内容的位置以及参考页面的位置。默认情况下,没有核心CSS样式,因此您必须在**后自行设计这些样式。

WordPress搜索:有用的插件和代码片段

更好的搜索顾名思义,更好的搜索是一个标准插件,可为您的WordPress博客提供更好的搜索。 每个结果页面均根据关键字相关性和用于识别元标记,帖子标记和类别的高级技术进行划分。 键入新的搜索表单时,将显示整个博客中最受欢迎的搜索词。 这会根据您的搜索查询带来多少流量而经常更新!

WordPress搜索:有用的插件和代码片段

搜索灯正如您可能在其他地方看到过的一样,“按需更新”功能爆炸了。 自Google即搜即得发布以来,许多其他搜索提供商已推出了类似的技术。 Search Light是一个很棒的插件,它使用Ajax下拉界面创建相关查询的动态菜单。 您还可以在搜索栏中添加您的帖子缩略图和结果总数。

WordPress搜索:有用的插件和代码片段

WP Instant Search该插件需要一些外部库,尽管它们提供与以前的Search Light类似的功能。 如果您真的很喜欢Ajax下拉建议,则可以在WP Instant Search中找到很多相同的功能。 该插件已更新到最新版本WordPress 3.0.5,并将检查WordPress标记,帖子,页面和类别。

WordPress搜索:有用的插件和代码片段

WP电子商务产品搜索小部件此插件支持在WordPress上运行的电子商务解决方案的小部件显示。 当您在线销售商品或软件时,重要的是您的电子商务解决方案易于导航且易于查找产品。 有了这个漂亮的插件,我们可以取代WordPress的过时搜索功能,以包括一个新的查询视图。 结果页面将以网格样式的布局列出产品,并保持兼容最新版本。

WordPress搜索:有用的插件和代码片段

ThreeWP Ajax搜索一个用于Ajax搜索的免费插件。 只需下载并安装插件,即可了解该过程将如何轻松进行! 默认设置可完美地适用于Twentyten主题和所有衍生产品。 一个很酷的功能是该插件如何仍然可以围绕WordPress的默认搜索引擎工作。 在这种情况下,您不会从WordPress强大的库中丢失任何内容,而只会获得宏伟的前端体验效果。 有许多自定义选项,包括CSS样式,jQuery速度和动画样式。

WordPress搜索:有用的插件和代码片段

5个有用的搜索片段

1.从搜索结果中排除帖子/页面

使用以下功能,您可以排除任何类别的帖子,甚至排除搜索结果中的页面。 (通过wprecipes

(functions.php)

function SearchFilter($query) {
    if ($query->is_search) {
        $query->set('cat','0,1');
    }
    return $query;
}
 
add_filter('pre_get_posts','SearchFilter');

2.搜索特定类别

返回特定类别的搜索结果。

(functions.php)

function SearchFilter($query) {
  if ($query->is_search) {
    // Insert the specific categories you want to search
    $query->set('cat', '8,9,12');
  }
  return $query;
}
 
add_filter('pre_get_posts','SearchFilter');

3.搜索特定的帖子类型

过滤掉所有其他帖子类型,并将搜索目标定位到特定的WordPress 帖子类型

(functions.php)

function SearchFilter($query) {
  if ($query->is_search) {
    // Insert the specific post type you want to search
    $query->set('post_type', 'feeds');
  }
  return $query;
}
 
// This filter will jump into the loop and arrange our results before they're returned
add_filter('pre_get_posts','SearchFilter');

4.突出显示WordPress搜索字词(jQuery)

在WordPress结果页面中突出显示搜索词。 (通过weblogtoolscollection

(functions.php)

function hls_set_query() {
  $query  = attribute_escape(get_search_query());

  if(strlen($query) > 0){
    echo '
      <script type="text/javascript">
        var hls_query  = "'.$query.'";
      </script>
    ';
  }
}

function hls_init_jquery() {
  wp_enqueue_script('jquery');
}

add_action('init', 'hls_init_jquery');
add_action('wp_print_scripts', 'hls_set_query');

(header.php) ,在</head>之前

<style type="text/css" media="screen">
    .hls { background: #D3E18A; }
</style>

<script type="text/javascript">
jQuery.fn.extend({
highlight: function(search, insensitive, hls_class){
  var regex = new RegExp("(<[^>]*>)|(\\b"+ search.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1") +")", insensitive ? "ig" : "g");
  return this.html(this.html().replace(regex, function(a, b, c){
	return (a.charAt(0) == "<") ? a : "<strong class=\""+ hls_class +"\">" + c + "</strong>";
  }));
}
});
jQuery(document).ready(function($){
if(typeof(hls_query) != 'undefined'){
  $("#post-area").highlight(hls_query, 1, "hls");
}
});
</script>

5.显示搜索字词+结果计数

返回搜索查询和结果数。 示例– Twitter的搜索结果– 8篇文章 (通过wpbeginner

<h2 class="pagetitle">
	Search Result for 
	<?php /* Search Count */ 
	$allsearch = &new WP_Query("s=$s&showposts=-1"); 
	$key = wp_specialchars($s, 1); 
	$count = $allsearch->post_count; 
	_e(''); _e('<span class="search-terms">'); 
	echo $key; _e('</span>'); _e(' &mdash; '); 
	echo $count . ' '; _e('articles'); wp_reset_query(); 
	?>
</h2>

翻译自: https://www.hongkiat.com/blog/wordpress-search-plugin-snippet/