原理
bAIdu_check() 函数用来检查文章是否被百度收录
首先获取文章的 ID 和其是否已被百度收录的状态
如果文章未被收录,则构建一个百度搜索的 URL,使用 curl 函数进行搜索,并通过 strpos() 函数来检测是否搜索到了该文章
如果搜索结果中包含该文章,就将该文章的收录状态更新为已收录,并返回提示信息
如果搜索结果中未包含该文章,将该文章的状态设置为未收录,并返回提示信息
如果文章已被索引,直接返回已收录的状态
baidu_record() 函数在调用页面显示相应的提示信息和按钮,并在点击按钮时将页面推送给百度索引
在 zib-single.PHP 中直接获取返回值
教程
站点根目录/wp-content/themes/zibll/func.php 添加以下代码,没有就新建
/**
* 检查百度收录情况
*
* @param string $url 要检查的URL
* @return int 返回1表示已收录,0表示未收录
*/
function baidu_check($url) {
// 获取当前文章ID
$post_id = get_the_ID();
// 获取当前文章的百度收录状态
$baidu_record = get_post_meta($post_id, 'baidu_record', true);
// 如果状态未知或者不是最新的,则进行检查
if ($baidu_record !== '1') {
// 构造百度搜索URL
$baidu_url = 'https://www.baidu.com/s?wd=' . urlencode($url);
// 初始化cURL
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $baidu_url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_USERAGENT => 'Mozilla/5.0 (compatible; BaiduChecker/1.0)',
]);
// 执行请求
$response = curl_exec($curl);
// 错误处理:检查cURL是否执行成功
if ($response === false) {
error_log('cURL error: ' . curl_error($curl));
curl_close($curl);
return 0;
}
curl_close($curl);
// 使用正则表达式来检查未收录的提示
$not_found_pattern = '/没有找到该URL。您可以直接访问|很抱歉,没有找到与|抱歉,未找到相关内容/';
$is_included = !preg_match($not_found_pattern, $response);
// 更新文章的收录状态
update_post_meta($post_id, 'baidu_record', $is_included ? '1' : '0');
return $is_included ? 1 : 0;
}
// 已知状态直接返回
return intval($baidu_record);
}
/**
* 显示百度收录状态
*/
function baidu_record() {
// 获取当前文章的收录状态
$status = baidu_check(get_permalink());
// 根据收录状态输出相应的HTML
if ($status === 1) {
echo '<a target="_blank" title="点击查看" rel="external nofollow" href="https://www.baidu.com/s?wd=' . urlencode(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=' . urlencode(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>';
}
}
添加显示位置
站点根目录/wp-content/themes/zibll/inc/functions/zib-single.php 在220行左右添加以下代码
echo ' '; baidu_record();
如图时间前即可
暂无评论内容