首页 » Wordpress » WordPress技巧:让搜索功能支持搜索友链信息

WordPress技巧:让搜索功能支持搜索友链信息

7117 5

没有搜索功能的博客肯定不是一个好博客,几乎所有的wordpress主题都会有一个搜索框,有的可能是全站搜索框,有的可能只在首页,如果你只是用博客来写文章的话,这些区别不是很大。但是今天发生了一件让tiandi脑袋卡住的的事情:前阵子搞了个个人独立中文博客大全,收录了一些自己访问过的觉得有意思的站点,今天在添加站点会淹死的鱼的时候,忽然感觉此站点好像已经添加过了,因此站点内容大多是原创文学类的内容,tiandi不是特别经常去看,只是去过几次,站长的域名是中文的,记忆中有点印象。所以对于是否添加过有点模糊,随即我使用博客上的搜索功能,输入”会淹死”这三个字,返回给我了一个空内容的首页,意思是没有找到相关内容。

难道是wordpress自带的搜索功能不支持搜索友链信息(博客大全完全是用wordpress的友链功能做的)?于是上官网查询search函数的构成,没有找到相关文档,但查到了这个《Creating_a_Search_Page》,果然和我想象的一样,搜索功能默认是用wp_query()的函数来进行工作的,只能查找和post相关的内容,所以在这里,需要小小的改动一下,使得搜索功能能搜索到友链里的信息。

打开主题目录下的search.php文件,此文件为搜索结果显示页面,需要修改此文件来达到这次的目的,在文件头部适当位置加上以下判定,即跳转页面为带有blogslist字样的,则显示友链查询结果:

//站点大全查询
if (strstr($_SERVER['HTTP_REFERER'],"blogslist")!=false) {
global $query_string;
$query_string = substr(urldecode($query_string),2);
global $wpdb;
$results = $wpdb->get_results("select * from $wpdb->links where link_url like '%".$query_string."%' or link_name like '%" .$query_string."%' group by link_name");
if($results) {
	echo "<span style='font-size: 18px;'>从博客大全中为您找到以下匹配站点:</span>";
	echo "匹配规则为博客名或者博客地址含有<span style='color: red; font-weight: bold;'> " .$query_string." </span>字样。
";
	foreach ($results as $result) {
		echo "<li><a href = ".$result->link_url." target=_blank>".$result->link_name."</a></li>";
	}
}
else
	echo "<span style='font-size: 18px;'>抱歉,本站博客大全没有收录相关站点信息。</span>";
}
else {
//原先的搜索代码
}

这样修改完成后,就能看到效果了,什么?你不懂我说的是什么,没关系,点开导航上的博客大全后输入”IT”两字,按搜索后,你会发现和在其他地方搜索的结果完全两样。

自定义搜索

文章评分1次,平均分5.0

本文原始地址:https://www.tiandiyoyo.com/2013/06/how-to-add-customize-search/
本站所有文章,除了特别注明外,均为本站原创,转载请注明出处来自www.tiandiyoyo.com

您可能还会对以下文章感兴趣:

评论前先开启评论开关:


5 Comments

  1. Rilun :

    不如加一个AJAX判断实用的 有点浪费核心资源的感觉

  2. 貌似都不怎么用自己的搜索

    • tiandi :

      这确实是个问题,老实说,我之前也不怎么用自己博客的搜索框,只有几次是想搜索以前自己写过的文章。

  3. 神父 :

    我感觉我的搜索只有自己会用,也许自己也难得一用

载入分页评论...