- A+
一、效果预览
二、WordPress插件版
刚好昨晚开发了一个WordPress对话框插件,趁热打铁,索性也将这个功能打包成了WordPress插件,方便小白站长们使用!
目前该插件已通过WordPress官方审核,插件地址:
插件地址:https://wordpress.org/plugins/wp-baidu-record/
下载地址:https://downloads.wordpress.org/plugin/wp-baidu-record.zip
如果好用,希望你能抽空前往给个好评,支持下~非常感谢!
安装方法:
方法①、进入后台插件在线安装界面,搜索wp baidu record并按照提示安装启用即可【推荐】;
方法②、下载文件并解压,将wp-baidu-record文件夹上传到 /wp-content/plugins/目录,在插件后台启用即可;
方法③、进入后台插件安装界面,选择上传安装插件,并选择下载得到的zip压缩包即可;
插件设置:
①、插件激活后,点击[设置]按钮进入插件设置界面,插件默认设置如下:
默认是在文章内容的最后输出百度收录结果,而且是公开显示!
②、如果你想自定义输出位置,那么请勾选自定义结果输出位置,然后按照提示操作:
具体做法:前往WordPress主题目录,找到文章模板(一般是single.php),然后在想要显示的位置添加如下函数即可:
< ?php echo baidu_record(); ?>
比如,张戈博客是将以上函数添加到了文章模板的副标题位置:
三、纯代码部署
理论上,任何WordPress插件都能采用纯代码来替代,所以继续分享一下纯代码部署的方法。不过要特别说明的是,代码版和插件版不能同时存在,否则会产生冲突!
1、编辑WordPress主题目录下的functions.php文件,在最后一个?>标签之前,添加如下代码并保存:
function baidu_check($url, $post_id){ $baidu_record = get_post_meta($post_id,'baidu_record',true); if( $baidu_record != 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,'没有找到该URL。您可以直接访问') && !strpos($rs,'很抱歉,没有找到与') ){ update_post_meta($post_id, 'baidu_record', 1) || add_post_meta($post_id, 'baidu_record', 1, true); return 1; } else { return 0; } } else { return 1; }}function baidu_record() { global $wpdb; $post_id = ( null === $post_id ) ? get_the_ID() : $post_id; if(baidu_check(get_permalink($post_id), $post_id ) == 1) { echo '百度已收录'; } else { echo '百度未收录'; }}
2、编辑WordPress主题下的文章模板(一般是single.php),在想要显示收录结果的位置添加如下代码并保存:
< ?php baidu_record(); ?>
和上文插件的安装方法一致,可进一步参考操作。
四、附加说明
这个功能实际上已有人开发了插件或分享过类似代码,我只是在原来的基础上做了一些改进,具体如下:
原版特性:
1. 原版功能:通过curl在百度查询本页url并获取结果,如果存在就输出已收录,否则就是未收录,并且可点击提交url
2. 原版缺点:每次打开页面都需要在百度查询一遍,严重拖慢速度!当然可以利用缓存插件解决此问题。
改进特性:
i. 通过curl在百度查询url收录结果,如果已收录就将结果写入到文章的post meta记录中。待下一次再次打开页面时,先检查文章自定义栏目字段来判断是否已收录,若已收录则直接输出,而不再执行curl查询,从而解决了curl实时查询拖慢速度的问题!
ii. 若查询结果为已收录,亦会输出一个在百度查询文章标题的a标签,用于查看文章排名,甚至可以查看是否被人转载或篡改!
iii. 管理员可以随时在后台文章编辑界面中的自定义栏目来修改是否已收录的结果,自定义名称为baidu_record,1为已收录,0为未收录。
改进之后,如果是已收录的文章,将不会重复查询,从而解决了原版代码严重拖慢网站速度的缺憾!
上次分享的方法是将结果写入到数据库,而且部署的时候需要手动操作数据库,并添加字段,相对比较麻烦也很容易让没有经验的小白站长产生畏惧感。此次改进,就弥补了这个不足,而且额外制作了插件版,降低了这个功能的添加门槛,希望大家喜欢!