首页
网站源码
软件仓库
技术分享
主题插件
搜索
登录
搜索
小玖云
累计撰写
15
篇文章
累计收到
0
条评论
首页
栏目
首页
网站源码
软件仓库
技术分享
主题插件
存档于 【202507】 的文章
2025-7-4
EMLOG博客- 百度提交自动推送,判断文章是否收录
简介主要实现了百度搜索收录状态检测与自动推送功能,可帮助网站管理员优化文章在百度搜索引擎中的收录效率功能概述百度收录状态检测:通过百度站长平台 API,判断文章是否已被百度收录。自动推送未收录文章:当管理员访问文章页时,自动向百度提交未收录的文章链接。收录状态缓存机制:避免频繁请求 API,减少服务器资源消耗。前端交互提示:向用户显示文章收录状态(已收录 / 未收录),并提供手动提交入口<?php /* EMLOG百度搜索自动推送、主动收录JS优化 * 文章地址:https://www.xjybk.cn/24.html * 转载请保留出处,谢谢合作! */ function bdPushData($id){ $url = Url::log($id); if(baidu($url) === true){ echo '<!--本文已收录,不输出推送代码-->'; }else{ echo "<script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(bp, s); })(); </script>"; } } ?> <?php /* * 使用百度站长平台API判断内容页是否已收录 * 并在管理员访问时自动提交未收录文章 */ function baidu($url){ // 缓存检测结果,避免频繁请求API $cacheKey = 'baidu_index_check_' . md5($url); $cacheTime = 3600; // 缓存1小时 $cacheDir = dirname(__FILE__) . '/cache/'; // 确保缓存目录存在 if (!is_dir($cacheDir)) { mkdir($cacheDir, 0755, true); } $cacheFile = $cacheDir . $cacheKey; // 尝试从缓存获取结果 if (file_exists($cacheFile) && (time() - filemtime($cacheFile)) < $cacheTime) { $cacheData = file_get_contents($cacheFile); if ($cacheData !== false) { $cacheData = json_decode($cacheData, true); if (isset($cacheData['data'])) { return $cacheData['data']; } } } // 使用百度站长平台API检测收录状态 $apiUrl = 'https://api.baidu.com/sitemap/index'; $postData = array( 'site' => 'https://www.xjybk.cn', // 替换为你的网站域名 'token' => 'WooJwDBvfvlUl9mz', // 替换为你的百度站长平台token 'url' => $url ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $apiUrl); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/x-www-form-urlencoded', 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36' )); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); // 处理API响应 $isIndexed = false; if ($httpCode == 200 && $response) { $result = json_decode($response, true); if (isset($result['status']) && $result['status'] == 0) { $isIndexed = $result['data']['indexed'] == 1; } } // 缓存检测结果 $cacheData = array( 'time' => time(), 'data' => $isIndexed ); file_put_contents($cacheFile, json_encode($cacheData)); return $isIndexed; } function checkbaidu($id){ $url = Url::log($id); if(baidu($url) === true){ echo "百度已收录"; } else { if (ROLE == 'admin' || ROLE == 'writer') { $urls = array($url); $api = 'http://data.zz.baidu.com/urls?site=https://www.xjybk.cn&token=WooJwDBvfvlUl9mz'; $ch = curl_init(); $options = array( CURLOPT_URL => $api, CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => implode("\n", $urls), CURLOPT_HTTPHEADER => array('Content-Type: text/plain'), CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36' ); curl_setopt_array($ch, $options); $result = curl_exec($ch); curl_close($ch); echo '已提交给度娘'; } echo "<a style=\"color:red;\" rel=\"external nofollow\" title=\"点击提交收录\" target=\"_blank\" href=\"http://zhanzhang.baidu.com/sitesubmit/index?sitename=$url\">坐等收录</a>"; } } ?>使用说明如上PHP代码,添加到主题module.php即可。当页面未被百度收录,将会输出百度自动推送js代码,否则不会输出。在模板的footer.php文件中</html>前调用<?php echo bdPushData($logid);?>即可。在模板的echo_log.php文件中调用<?php echo checkbaidu($logid);?>即可。
2025年-7月-4日
35 阅读
0 评论
技术分享
友情链接
申请链接
红尘资源网
白云博客网
小玖云博客
小玖云博客
小玖云博客
小玖云博客
小玖云博客
小玖云博客
小玖云博客