#精品
教你如何在WordPress后台增加文章百度收录概况

2024-09-08 839

增改文章 在WordPress(WP)网站中,利用一个小技术手段管理网站在百度搜索引擎中的收录情况。通过Curl API第三方接口来搞定,以下是介绍如何在WP后台增加API接口来管理百度收录情况的内容。

教你如何在WordPress后台增加文章百度收录概况

安装代码:

首先,在WordPress主题中找到functions.php文件,将以下代码复制并粘贴到文件中保存。

//后台发布文章增加字段
add_action(‘save_post’, ‘dp_post_houtai’);
function dp_post_houtai($post_id)
{
$post = get_post($post_id);
if (empty($post>ID) || ‘publish’ !== $post>post_status) {
return;
}
$post_id = $post>ID;
$ok = get_post_meta($post_id, ‘baidu_record’, true);
if (!empty($ok[‘baidu_record_time’])) { //已经存在
return;
}
$dangqian_time = strtotime(current_time(“Y-m-d H:i:s”));
$baidu_recordarray = array(‘baidu_record_tips’ => ‘未收录’, ‘baidu_record_time’ => $dangqian_time);
add_post_meta($post_id, ‘baidu_record’, $baidu_recordarray, true);
}
add_filter( ‘manage_post_posts_columns’, ‘dp_manage_post_posts_columns’);
function dp_manage_post_posts_columns($columns) {
$order = isset($_REQUEST[‘order’]) && ‘desc’ == $_REQUEST[‘order’] ? ‘asc’ : ‘desc’;
if (isset($columns[‘cb’])) {
$add_columns[‘cb’] = $columns[‘cb’];
unset($columns[‘cb’]);
}
if (isset($columns[‘title’])) {
$add_columns[‘title’] = $columns[‘title’];
unset($columns[‘title’]);
}
if (isset($columns[‘author’])) {
$add_columns[‘author’] = $columns[‘author’];
unset($columns[‘author’]);
}
$add_columns[‘baidu_record_data’] = ‘<a href=”‘ . add_query_arg(array(‘orderby’ => ‘baidu_record_tips’, ‘order’ => $order)) . ‘”><span>百度收录</span></a> · <a href=”‘ . add_query_arg(array(‘orderby’ => ‘baidu_record_time’, ‘order’ => $order)) . ‘”><span>刷新时间</span></a>’;
return array_merge($add_columns, $columns);
}
//后台显示收录情况
add_action(‘manage_post_posts_custom_column’, ‘dp_admin_post_posts_custom_column’, 11, 2);
function dp_admin_post_posts_custom_column($column_name, $posts_id)
{
switch ($column_name) {
case “baidu_record_data”:
$check = dp_baidu_check_function($posts_id,true);
if (!empty($check)) {
$baidu_record = get_post_meta($posts_id, ‘baidu_record’, true);
$baidu_record_tips = isset($baidu_record[‘baidu_record_tips’]) ? $baidu_record[‘baidu_record_tips’] : 0;
$baidu_record_time = isset($baidu_record[‘baidu_record_time’]) ? $baidu_record[‘baidu_record_time’] : 0;
$zuihou_time = date(“Y-m-d H:i:s”, $baidu_record_time);
if (!$baidu_record_tips || !$baidu_record_time) {
echo ‘<div style=”font-size: 12px;”>无数据</div>’;
break;
}
echo ‘<div style=”font-size: 12px;”> ‘ . $baidu_record_tips .‘ ‘. $zuihou_time . ‘</div>’;
break;
}
break;
}
}
//百度文章收录
function dp_baidu_check_function($post_id = null, $update = false){
global $wpdb;
$post_id = ( null === $post_id ) ? get_the_ID() : $post_id;
$baidu_record = get_post_meta($post_id,‘baidu_record’,true);
$dangqian_time = strtotime(current_time(“Y-m-d H:i:s”));
$zuihou_time = $baidu_record[‘baidu_record_time’];
if(empty($baidu_record)){
$baidu_recordarray = array(‘baidu_record_tips’ => ‘未收录’, ‘baidu_record_time’ => $dangqian_time);
add_post_meta($post_id, ‘baidu_record’, $baidu_recordarray, true);
}
if($baidu_record[‘baidu_record_tips’] == “已收录” && ($dangqian_time$zuihou_time) > 86399){//收录24小时刷新
$url=‘https://api.fish9.cn/api/baidu/?url=’.get_permalink();
$res = json_decode(dps_baiduSL_timecurl_post($url), true);
if($res[‘status’] == 1){
$baidu_recordarray = array(‘baidu_record_tips’ => $res[‘tips’][0], ‘baidu_record_time’ => $dangqian_time);
update_post_meta($post_id, ‘baidu_record’, $baidu_recordarray);
return $res[‘tips’][0];
}
}
if($baidu_record[‘baidu_record_tips’] != “已收录” && ($dangqian_time$zuihou_time) > 43199){//未收录12小时刷新
$url=‘https://api.fish9.cn/api/baidu/?url=’.get_permalink();
$res = json_decode(dps_baiduSL_timecurl_post($url), true);
if($res[‘status’] == 1){
$baidu_recordarray = array(‘baidu_record_tips’ => $res[‘tips’][0], ‘baidu_record_time’ => $dangqian_time);
update_post_meta($post_id, ‘baidu_record’, $baidu_recordarray);
return $res[‘tips’][0];
}
}
return “请求错误”;
}
//简单的curl请求
function dps_baiduSL_timecurl_post($url)
{
$ch = curl_init();//创建curl请求
curl_setopt($ch, CURLOPT_URL,$url); //设置发送数据的网址
curl_setopt($ch, CURLOPT_TIMEOUT, 1);//最小超时时间为1s,异步
curl_setopt($ch, CURLOPT_NOSIGNAL, true); //注意,毫秒超时一定要设置这个
curl_setopt($ch, CURLOPT_TIMEOUT_MS, 5000); //超时时间200毫秒
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //设置有返回值,0,直接显示
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0); //禁用证书验证
$output = curl_exec($ch);
curl_close($ch);
return $output;
}

关于api请求:

有时候这个API接口的响应速度可能较慢,为了应对这种情况,可以适当增大curl中的CURLOPT_TIMEOUT_MS参数,例如设置为5000ms。此接口的设计是用于每隔12小时刷新未被收录的文章,以及每隔24小时刷新已经被收录的文章。

处理收录API:

接收到第三方API的响应后,可以在后台查看提交收录相关的收录情况数据。这样可以了解已经被收录的页面以及未被收录的页面,进而有针对性地优化网站内容,提升收录效果。

定时任务:

为了定期检查网站的收录情况并提交新的收录请求,您可以设置一个定时任务。通过利用宝塔(或其他工具)设置定时任务,可以自动发送收录请求并获取最新的收录情况数据,这有助于及时了解网站在百度搜索引擎中的表现,并采取相应的优化措施。

通过定时任务,您可以定期检查网站中哪些页面已被收录,哪些页面尚未被收录,从而更好地了解网站在百度搜索引擎中的展现情况。定时任务的设置可以帮助您提前发现并解决可能存在的收录问题,进而对网站进行优化和改进。

请注意,定时任务的设置应该合理安排执行时间,避免对服务器造成过大压力。定时任务的频率可以根据实际需求和网站规模来设定,以确保正常运行并获得有效的收录情况数据。希望这个建议对您管理网站在百度搜索引擎中的收录情况有所帮助。

如果您有任何其他问题或需要进一步指导,请随时留信告诉我哟。

收藏 打赏

感谢您的支持,我会继续努力的!

打开微信扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

版权声明 1 零玖吧
2 https://www.09b.cn
3 QQ68857537
4
5 访
6
7

要想程序运行完整,离不开BUG的辅助

常见问题
  • 本站所有资源仅供学习交流使用请勿商业运营,严禁使用零玖吧上的资源从事违法,侵权等任何非法活动!
查看详情
  • 是的,开通之后所有资源都可以下载!
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务