跳至正文

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

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

WordPress 是一个强大的 CMS 工具,不仅支持博客,还支持无数的论坛和个人网页。所提供的许多功能在市场上都相当先进,但他们的搜索似乎仍然滞后。这些功能为极其复杂的问题提供了一个非常简单的解决方案——在您的网站上找到正确的内容!

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

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

WordPress 搜索基础

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

wordpresscom搜索

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

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

WordPress 主题文件

每个WordPress 主题文件夹中都有一组搜索文件。这些似乎对功能和强大的搜索表单很有用。在根模板文件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 默认设置更复杂的自定义搜索查询。

如果您是一名开发人员,我建议您通读函数参考页面,以深入了解该方法。文档很长,可能不会被很多人使用。有一些真正简洁的功能,例如根据当前在页面中显示的内容提取特定的帖子或类别。

Query 函数还允许检查当前页面值。WordPress 会自动为您网站上的每种类型的页面命名。博客文章、页面、搜索结果和主页只是几个例子。下面我为那些有兴趣深入研究的人概述了常见页面变量的简要列表。

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

16 个增强搜索的插件

下面我包含了一些与搜索和查询相关的流行插件的链接。这些都是免费的,可以从 WordPress 的官方扩展目录下载。我强烈建议不要一次安装超过 2 或 3 个这样的东西——仔细阅读描述并一个一个地测试,看看是否有任何东西最适合你的博客!

Google Custom Search Plugin在 WordPress 中搜索的默认选项并不是最好的解决方案。通常,网站管理员更愿意通过 Google 收集他们的搜索查询,以获得更快、更有针对性的结果。安装后,此插件将使用自定义 Google 搜索自动重写默认的 WordPress 搜索表单。即时采用一组新的友好 URL!

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

增强型搜索表单

Search Everything Search Everything 是另一个出色的一体化插件,可支持您的高级搜索需求。一些最受欢迎的功能包括搜索突出显示、自定义分类法、浏览批准的评论等等!管理面板非常简单,设置轻而易举。

搜索一切

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

Search Meter Search Meter 对于那些对跟踪分析感兴趣的网站管理员来说是一个迷人的想法。每个搜索查询都存储并存档在管理面板中,并带有检查搜索分析的额外详细信息。您将获得有关有多少搜索失败或未找到结果的数据,以及流行和最近的搜索词。该插件将生成您可以重置或导出以供检查的统计数据。

Fast WordPress Search Fast WordPress Search 是 WordPress 默认引擎的基本替代插件。这通常会返回更多相关页面并略微加快流程。该过程被编写为与 WP 庞大的函数库一起工作,以减少数据库调用并为密集查询返回更快的结果。安装还附带基准测试工具来比较时间。

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

Looser Search Plugin在这里,我们有一个小插件,安装后立即寄予厚望。Looser Search Plugin 修改了 WordPress 库中已经内置的进程以匹配关键字而不是完整的术语。跳过常用英语单词的内部词典以加快搜索过程。如果您正在寻找一个基本的插件来安装并获得最快的结果,我强烈推荐这个。

Dave 的 WordPress Live Search如果您是 Microsoft Live Search 的粉丝,这个简单的插件将增强您的博客体验。提供来自 Live Search 的结果意味着比内部处理具有更高的相关性和更快的加载时间。该插件旨在在用户输入时提供即时的最新结果——所有这些都是在幕后使用 jQuery 和一些基本的 CSS 样式提供支持的。尝试安装并查看您的博客是否可以处理页面加载,因为它为搜索结果提供了惊人的用户体验。

搜索标签云此插件使您可以轻松访问以开发简单的标签云。这将导致来自谷歌的高排名,因为更多的链接将导致您的博客页面。此外,当您考虑只需单击几下即可找到多少帖子时,用户体验会显着提高。该插件需要标准安装步骤,并且在开发时考虑到了 SEO。

Highlight Search Terms您可能已经看到这个插件被今天无数的博客所采用。每当访问者通过主要搜索引擎(Google、Yahoo!、Bing、Lycos、Ask……)找到您的页面时,每个关键字都会在您的内容中突出显示。这有助于访问者找出页面内容所在的位置以及它所在的参考框架。默认情况下没有核心 CSS 样式,因此您必须在激活后自行设计这些样式。

Better Search Better Search,顾名思义,是一个标准插件,可以让您的 WordPress 博客更好地搜索。每个结果页面都根据关键字相关性和用于识别元标记、帖子标记和类别的高级技术进行拆分。键入新的搜索表单时,将显示在整个博客中搜索的最流行的搜索词。这会根据您的搜索查询带来的流量经常更新!

Search Light正如您可能在其他许多地方看到的那样,“按类型更新”功能已经爆炸式增长。自从发布 Google Instant 以来,许多其他搜索提供商都在推出类似的技术。Search Light 是一个很棒的插件,它使用 Ajax 下拉界面来创建相关查询的动态菜单。也可以在搜索栏本身内绑定您的帖子缩略图和结果总数。

WP Instant Search此插件需要一些外部库,但提供与以前的 Search Light 类似的功能。如果您真的喜欢 Ajax 下拉建议,您会在这里发现许多与 WP Instant Search 相同的功能。该插件已更新到最新版本的 WordPress 3.0.5,并将检查 WordPress 标签、帖子、页面和类别。

WP 电子商务产品搜索小部件此插件支持在 WordPress 上运行的电子商务解决方案的小部件显示。当您在线销售商品甚至软件时,重要的是您的电子商务解决方案易于浏览且产品易于查找。使用这个漂亮的插件,我们可以替换 WordPress 陈旧的搜索功能,以包含一个新的查询视图。结果页面将以网格样式布局列出产品,并与最新版本保持兼容。

ThreeWP Ajax Search一个用于 Ajax 搜索的实用插件。只需下载并安装该插件,即可了解该过程的展开有多么容易!默认设置与 Twentyten 主题和所有衍生主题完美配合。一个很酷的功能是这个插件如何围绕 WordPress 的默认搜索引擎工作。在这种情况下,您不会失去 WordPress 强大的库中的任何东西,而只会获得出色的前端体验效果。有许多自定义选项,包括 CSS 样式和 jQuery 速度以及动画样式。

5 个有用的搜索片段

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

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

(函数.php)

1个
2个
3个
4个
5个
6个
7
8个
function SearchFilter($query) {
    if ($query->is_search) {
        $query->set('cat','0,1');
    }
    return $query;
}
  
add_filter('pre_get_posts','SearchFilter');

2.搜索特定类别

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

(函数.php)

1个
2个
3个
4个
5个
6个
7
8个
9
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帖子类型

(函数.php)

1个
2个
3个
4个
5个
6个
7
8个
9
10
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)

(函数.php)

1个
2个
3个
4个
5个
6个
7
8个
9
10
11
12
13
14
15
16
17
18
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>

1个
2个
3个
4个
5个
6个
7
8个
9
10
11
12
13
14
15
16
17
18
19
<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.显示搜索词+结果计数

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

1个
2个
3个
4个
5个
6个
7
8个
9
10
11
<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(' — ');
  echo $count . ' '; _e('articles'); wp_reset_query();
  ?>
</h2>

标签:

发表回复