最近一直在刻苦钻研 WordPress,如此开放的一个平台确实带来了高度的个性化,随之而来的也有各种各样的问题,要解决 WordPress 的问题的确需要一定的计算机基础,编程知识和不厌其烦的耐心。昨天为了合并 JS 代码,减少首页加载时的 HTTP 请求,花了我 5 个小时去解决 JS 代码冲突的问题,最后终于将加载 12 个 JS 减少到 8 个,“减少一次 HTTP 请求可以将加载速度提高 0.2 秒”,看来我的优化已经将加载速度提高了将近 1 秒了。

第二个问题就是高亮搜索关键字的功能,如果用插件去实现,实在是影响性能,而且我在 plugins 里面转了一圈,也没有发现功能实现较好的插件。在 Google 上展开搜索,大概找到了 3 种方法:第一种,利用 jQuery 实现;第二种,利用 PHP 的函数加载在 function.php 中实现。以上两种都需要在 function.php 添加函数,这样在非搜索页时也会被加载。第三种方法,来自于万戈的“WordPress 站内搜索高亮显示关键词”,这种方法只需要在 Search.php 中加入函数,避免了在不需要的情况下加载。经过测试,这种方法还能强制已经分页和插入 more 标签的文章全文显示(需要把函数中的参数 600 改大,变成全文显示的效果)

这样搜索关键字高亮的功能就已经实现,不过 WordPress 自带的搜索功能实在是太弱了,举个例子,搜索“shijiazhuang”就完全得不到任何结果,而搜索“石家庄”就有 4~5 页的文章显示。我想在搜索的时候加入一个提示,提醒搜索的朋友可以去 Google 搜索,以达到更精确的搜索结果。看了看高亮关键字的代码,一眼就看出获取 keyword 的函数,有了这个函数,做这个功能就太简单了,虽然还是花了我一点时间,毕竟对 HTML 和 CSS 都不熟悉,代码如下:

<div id="notice">
	<fieldset id="frame" class="frame">
		您正在搜索的关键字为:<a href="http://www.google.com.hk/search?q=<?php echo $s;?> site:xia.im" target="_blank"><?php echo $s;?></a>
		<p>更好更快的搜索体验,请单击关键字跳转至 Google 搜索</p>
	</fieldset>
</div>

将以上代码插入到 container 容器最上方即可。CSS 代码如下:

.frame {
	width: 310px;
	font-size: 12px;
	background-color: #FCF4D3;
	margin: 5px 0px 5px 276px;
	padding: 5px 0px 5px 0px;
	border: 1px solid #CCC;
	text-indent: 5px;
	text-align: center;
}

只要单击关键字,就可以在新窗口打开 Google 并以"keyword site:xia.im"的形式搜索。

ps1: 终于 ban 掉了 WordPress 的自动保存和 revision 功能,然后到 MySQL 里面把失效的 table 都删除了,优化是永远没有终点的。

ps2:“特别提示”

根据《中华人民共和国宪法》和相关法律法规规定,在保护公民合法言论自由的同时,禁止利用互联网、通讯工具、媒体以及其他方式从事以下行为:

一、组织、煽动抗拒、破坏宪法和法律、法规实施的。

二、捏造或者歪曲事实,散布谣言,妨害社会管理秩序的。

三、组织、煽动非法集会、游行、示威,扰乱公共场所秩序的。

四、从事其他侵犯国家、社会、集体利益和公民合法权益的。

管理部门将依法严加监管上述行为并予以处理;对构成犯罪的,司法机关将追究刑事责任。