原理介绍:
这是一个功能实现的函数和调用函数。函数的作用是检查文章是否被百度收录,如果被收录了就在文章前面加上一个“百度已收录”的提示,否则加上一个“百度未收录”的提示和一个推送给百度的按钮。
具体逻辑:
baidu_check() 函数用来检查文章是否被百度收录
首先获取文章的 ID 和其是否已被百度收录的状态
如果文章未被收录,则构建一个百度搜索的 URL,使用 curl 函数进行搜索,并通过 strpos() 函数来检测是否搜索到了该文章
如果搜索结果中包含该文章,就将该文章的收录状态更新为已收录,并返回提示信息
如果搜索结果中未包含该文章,将该文章的状态设置为未收录,并返回提示信息
如果文章已被索引,直接返回已收录的状态
baidu_record() 函数在调用页面显示相应的提示信息和按钮,并在点击按钮时将页面推送给百度索引
在 zib-single.php 中直接获取返回值
部署方法:
根目录 /wp-content/themes/zibll/func.php
添加以下代码,没有就新建
代码中的 你的token在百度站长平台复制过来就可以,只复制 token=
后面那一串
<?php
/* 百度收录查询 */
function baidu_check($url) {
global $wpdb;
$post_id = ( null === $post_id ) ? get_the_ID() : $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,'没有找到')) {
if( $baidu_record == 0) {
update_post_meta($post_id, 'baidu_record', 1);
} else {
add_post_meta($post_id, 'baidu_record', 1, true);
}
return 1;
} else {
if( $baidu_record == false) {
add_post_meta($post_id, 'baidu_record', 0, true);
}
return 0;
}
} else {
return 1;
}
}
function baidu_record() {
if(baidu_check(get_permalink()) == 1) {
echo '<a target="_blank" title="点击查看" rel="external nofollow" href="https://www.baidu.com/s?wd='.get_the_title().'小扎仙森"><span class="but c-yellow baidu-shoulu"><i class="fa fa-paw" aria-hidden="true"></i>百度已收录</span></a>';
} else {
echo '<a style="color:red;" rel="external nofollow" title="一键帮忙提交给百度,谢谢您!" target="_blank" href="http://data.zz.baidu.com/urls?site='.get_permalink().'&token=你的token"><span class="but c-grey baidu-shoulu"><svg class="icon" aria-hidden="true"><use xlink:href="#io-baidu1"></use></svg>百度未收录</span></a>';
}
}
WordPress后台→Zibll主题设置→自定义代码→自定义CSS样式 添加以下代码
.baidu-shoulu {
border-radius: 0 0 var(--main-radius) var(--main-radius) !important;
}
根目录 /wp-content/themes/zibll/inc/functions/zib-single.php
在220行左右添加以下代码
echo ' '; baidu_record();