文章页面显现百度是不是收录这个功用在张戈博客已测试有一段时间了。最入手下手的代码也是从收集上找的,只是本身用,所以也就没想着分享了,毕竟是人家的结果,而且自行百度也是能够找到的!
不过,既然有朋侪问到能否分享下增加这个功用的教程,所以决议整顿分享一下。
我一直是一个中度强迫症的圆满主义者,所以他人已分享的东西我平常不喜欢分享第二遍!但昨晚熬夜到三点,除了在新浪SAE搭建了一个 二维码API以外,还将百度收录查询这个功用完成了数据库贮存优化!
功用称号:给 WordPress增加百度是不是收录的查询与显现
原版特征:经由过程curl在百度查询本页url并猎取结果,假如存在就输出已收录,不然就是未收录,而且可点击提交url
原版瑕玷:每次翻开页面都需要在百度查询一遍,严峻拖慢速度!固然能够应用缓存插件处理此问题。
革新特征:
1、经由过程curl在百度查询url收录结果,假如已收录就将结果写入到数据库。待下一次再次翻开页面时,先搜检数据库响应字段来推断是不是已收录,若已收录则直接输出,而不再实行curl查询,从而处理了curl及时查询拖慢速度的问题!
2、若查询结果为已收录,亦会输出一个在百度查询文章标题的a标签,用于检察文章排名,以至能够检察是不是被人转载或改动!
先分享我如今在用的数据入库版本的使用方法:
①、给 WordPress数据库的wp_posts表新增baidu_record字段
i. 进入 phpMyAdmin,先挑选WordPress数据库,然后点击SQL:
ii. 粘贴以下代码并实行,即可给wp_posts新增一个baidu_record字段:ALTER TABLE `wp_posts` ADD `baidu_record` tinyint(1) NULL DEFAULT 0;
Ps:触及操纵数据库,任何时候都应该记得先将数据库导出一份备份,以防万一!若实行报错:
i、请搜检表前缀是不是是wp_,若不是请将代码改成现实的表称号再试;
ii、若照样报错,那多是当前帐号没有增加字段的权限,那就自行想办法找到权限更高的帐号来操纵。
②、编辑主题目录的functions.php文件,在末了一个?>前新增以下代码并保留:
function baidu_check($url){ global $wpdb; $post_id = ( null === $post_id ) ? get_the_ID() : $post_id; $query="SELECT baidu_record FROM $wpdb->posts WHERE $wpdb->posts.ID='$post_id'"; $result = $wpdb->get_var($query); if ( $result != 1 ){ $url='http://www.baidu.com/s?wd='.$url; $curl=curl_init(); curl_setopt($curl,CURLOPT_URL,$url); curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); $rs=curl_exec($curl); curl_close($curl); if(!strpos($rs,'没有找到')){ $updata="UPDATE $wpdb->posts set baidu_record = 1 WHERE ID='$post_id'"; $wpdb->query($updata); return 1; } else { return 0; } } else { return 1; }}function baidu_record() { if(baidu_check(get_permalink()) == 1) { echo '<a target="_blank" title="点击检察" rel="external nofollow" href="http://zhangge.net/go/?url=http://www.baidu.com/s?wd='.get_the_title().'">百度已收录</a>'; } else { echo '<a style="color:red;" rel="external nofollow" title="点击提交,谢谢您!" target="_blank" href="http://zhangge.net/go/?url=http://zhanzhang.baidu.com/sitesubmit/index?sitename='.get_permalink().'">百度未收录</a>'; }}
③、编辑文章模板(平常是single.php),在适宜的位置增加以下代码并保留:<?php print baidu_record(); ?>
若以上步骤都未失足,那如今接见文章页面就可以看到百度是不是已收录的结果了。固然,你要有兴致还能够像 张戈博客因为,将这个代码继承增加到首页或分类页面。
第一次接见大概会有点卡,当数据库存在纪录以后,将直接从数据库查询,而不会有任何拖慢速度觉得了!
固然,照样有朋侪忧郁操纵数据库会出问题,所以末了照样分享这个功用的及时查询版本:
①、编辑主题目录的functions.php,在末了一个?>之前增加以下代码并保留:
function baidu_check($url){ $url='http://www.baidu.com/s?wd='.$url; $curl=curl_init(); curl_setopt($curl,CURLOPT_URL,$url); curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); $rs=curl_exec($curl); curl_close($curl); if(!strpos($rs,'没有找到')){ return 1; } else { return 0; }}function baidu_record() { if(baidu_check(get_permalink()) == 1) { echo '<a target="_blank" title="点击检察" rel="external nofollow" href="http://zhangge.net/go/?url=http://www.baidu.com/s?wd='.get_the_title().'">百度已收录</a>'; } else { echo '<a style="color:red;" rel="external nofollow" title="点击提交,谢谢您!" target="_blank" href="http://zhangge.net/go/?url=http://zhanzhang.baidu.com/sitesubmit/index?sitename='.get_permalink().'">百度未收录</a>'; }}
②、编辑文章模板文件(平常为single.php),在适宜的位置增加以下代码并保留:<?php print baidu_record(); ?>
不出问题的话,接见文章页面也能够看到一样的结果了,固然这个是及时查询的,每次翻开页面都要实行一遍curl,假如主机设置和收集不给力的话,大概会比较费劲!固然,你能够用wp-super-cache这类缓存插件经由过程缓存页面来处理这个问题!
觉得本身都有程序猿的潜质了,臭屁一下。以上2种版本可根据个人喜欢以及主机现实情况挑选一个即可!总而言之,一入建站深似海,天天折腾无止境!继承折腾吧,骚年!!不折腾,做网站干啥,不root,你买安卓干啥,不逃狱你买爱疯干啥。。。。。

评论列表