没有搜索功能的博客肯定不是一个好博客,几乎所有的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”两字,按搜索后,你会发现和在其他地方搜索的结果完全两样。
不如加一个AJAX判断实用的 有点浪费核心资源的感觉
??,可以具体说说么,php没有返回结果页Ajax怎么判断?
貌似都不怎么用自己的搜索
这确实是个问题,老实说,我之前也不怎么用自己博客的搜索框,只有几次是想搜索以前自己写过的文章。
我感觉我的搜索只有自己会用,也许自己也难得一用