洛杉矶MC机房 高速低价18元起

DIYVM

WordPress给文章添加百度是否已收录查询和显示功能(自定义栏目优化版)

提示:如果官网是英文页面,建议使用谷歌浏览器能同步翻译页面。点击下载【谷歌浏览器最新绿色便携版】
注意:部分文章发布时间较长,可能存在未知因素,购买时建议在本站搜索商家名称,先充分了解商家动态。
交流:唯一投稿邮箱:hostvps@88.com。

文章页面显示百度是否收录这个功能在张戈博客已经测试有一段时间了。最开始的代码也是从网络上找的,只是自己用,所以也就没想着分享了,毕竟是人家的成果,而且自行百度也是可以找到的!

不过,既然有朋友问到可否分享下添加这个功能的教程,所以决定整理分享一下。

我一直是一个中度强迫症的完美主义者,所以别人已经分享的东西我一般不喜欢分享第二遍!但昨晚熬夜到三点,除了在新浪SAE搭建了一个二维码API之外,还将百度收录查询这个功能实现了自定义栏目优化!

WordPress给文章添加百度是否已收录查询和显示功能(自定义栏目优化版)贝壳主机网、bkvps.com

功能名称:给WordPress添加百度是否收录的查询与显示

原版特性:通过curl在百度查询本页url并获取结果,如果存在就输出已收录,否则就是未收录,并且可点击提交url

原版缺点:每次打开页面都需要在百度查询一遍,严重拖慢速度!当然可以利用缓存插件解决此问题。

改进特性:

i. 通过curl在百度查询url收录结果,如果已收录就将结果写入到文章的post meta记录中。待下一次再次打开页面时,先检查文章自定义栏目字段来判断是否已收录,若已收录则直接输出,而不再执行curl查询,从而解决了curl实时查询拖慢速度的问题!

ii. 若查询结果为已收录,亦会输出一个在百度查询文章标题的a标签,用于查看文章排名,甚至可以查看是否被人转载或篡改!

iii. 管理员可以随时在后台文章编辑界面中的自定义栏目来修改是否已收录的结果,自定义名称为baidu_record,1为已收录,0为未收录。

改进之后,如果是已收录的文章,将不会重复查询,从而解决了原版代码严重拖慢网站速度的缺憾!

下面是部署方法

①、编辑主题目录的functions.php文件​,在最后一个?>前新增如下代码并保存:

  1. /** 
  2.  * WordPress 显示百度是否收录功能(自定义栏目优化版) 
  3.  * https://zhang.ge/4617.html 
  4.  * DIY By 张戈博客  
  5. **/ 
  6. function baidu_check($url,$post_id){ 
  7.     $baidu_record  = get_post_meta($post_id,'baidu_record',true); 
  8.     if( $baidu_record != 1){ 
  9.         $url='http://www.baidu.com/s?wd='.$url; 
  10.         $curl=curl_init(); 
  11.         curl_setopt($curl,CURLOPT_URL,$url); 
  12.         curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); 
  13.         $rs=curl_exec($curl); 
  14.         curl_close($curl); 
  15.         if(!strpos($rs,'没有找到该URL。您可以直接访问') && !strpos($rs,'很抱歉,没有找到与') ){ 
  16.             update_post_meta($post_id, 'baidu_record', 1) || add_post_meta($post_id, 'baidu_record', 1, true); 
  17.             return 1; 
  18.         } else { 
  19.             return 0; 
  20.         } 
  21.     } else { 
  22.        return 1; 
  23.     } 
  24. function baidu_record() { 
  25.     global $wpdb; 
  26.     $post_id = ( null === $post_id ) ? get_the_ID() : $post_id; 
  27.     if(baidu_check(get_permalink($post_id), $post_id ) == 1) { 
  28.         echo '<a target="_blank" title="点击查看" rel="external nofollow" href="http://www.baidu.com/s?wd='.get_the_title().'">百度已收录</a>'
  29.    } else { 
  30.         echo '<a style="color:red;" rel="external nofollow" title="点击提交,谢谢您!" target="_blank" href="http://zhanzhang.baidu.com/sitesubmit/index?sitename='.get_permalink().'">百度未收录</a>'
  31.    } 

②、编辑文章模板(一般是single.php),在合适的位置添加如下代码并保存:

  1. <?php baidu_record(); ?> 

比如,张戈博客就将其添加到了副标题当中。

若以上步骤都未出错,那现在访问文章页面就能看到百度是否已收录的效果了。当然,你要有兴趣还可以像张戈博客由于,将这个代码继续添加到首页或分类页面。

第一次访问可能会有点卡,当数据库存在记录之后,将直接从数据库查询,而不会有任何拖慢速度感觉了!

感觉自己都有程序猿的潜质了,总而言之,一入建站深似海,天天折腾无止境!继续折腾吧,骚年!!不折腾,做网站干啥,不root,你买安卓干啥,不越狱你买爱疯干啥。。。。。

About 贝壳

【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。

 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

本文链接:贝壳主机网 » WordPress给文章添加百度是否已收录查询和显示功能(自定义栏目优化版)

分享到: 生成海报
香港/美国/国内高速VPS
切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活