• 没啥好说,更新慢

不用插件给WordPress实现百度主动推送

实用教程 每天学 来源:原创 7个月前 (03-09) 286次浏览

之前讲过了百度推送和熊掌号对站点的帮助,现在就简单说一下不用插件的方法给Wordpress加上百度主动推送

获得Token

首先进入百度站长工具的后台获得Token:
百度站长工具查看Token

修改functions.php

functions.php处于Wordpress的根目录下,当然主题下面也有一个functions.php,这边无论修改哪个都可以,看你自己的需求了。打开functions的php,加入下面的代码:


function Baidu_Submit($post_ID)
{
    $url = get_permalink($post_ID);
    $api = "http://data.zz.baidu.com/urls?site=https://meitianxue.net&token=填写你的Token";
    $request = new WP_Http;
    $result = $request->request($api, array(
        'method' => 'POST',
        'body' => $url,
        'headers' => 'Content-Type: text/plain'
    ));
}
add_action('publish_post', 'Baidu_Submit', 0);


上面这个是最简单的方法了,当然也可以改的稍微高级一点:

function Baidu_Submit($post_ID)
{
    $url = get_permalink($post_ID);
    $api = "http://data.zz.baidu.com/urls?site=https://meitianxue.net&token=填写你的Token";
    $request = new WP_Http;

    //防止重复提交
    if (get_post_meta($post_ID, 'Baidu_Submit', true) == 1) {
        return;
    }

    $result = $request->request($api, array(
        'method' => 'POST',
        'body' => $url,
        'headers' => 'Content-Type: text/plain'
    ));
    //判断是否提交成功,有错误则保存到错误日记
    if (is_array($result) && !is_wp_error($result) && $result['response']['code'] == '200') {
        error_log('baidu_submit_result:' . $result['body']);
        $result = json_decode($result['body'], true);
    }

    //防止重复提交
    if (array_key_exists('success', $result)) {
        add_post_meta($post_ID, 'Baidu_Submit', 1, true);
    }
}
add_action('publish_post', 'Baidu_Submit', 0);


当然,还可以加上主动提交更新数据的功能,基于上面代码修改:

function Baidu_Submit($post_ID)
{
    $url = get_permalink($post_ID);
    $api = "http://data.zz.baidu.com/urls?site=https://meitianxue.net&token=填写你的Token";
    $request = new WP_Http;
    if (get_post_meta($post_ID, 'Baidu_Submit', true) == 1) {
        return;
    }
    $result = $request->request($api, array(
        'method' => 'POST',
        'body' => $url,
        'headers' => 'Content-Type: text/plain'
    ));
    if (is_array($result) && !is_wp_error($result) && $result['response']['code'] == '200') {
        error_log('baidu_submit_result:' . $result['body']);
        $result = json_decode($result['body'], true);
    }
    if (array_key_exists('success', $result)) {
        add_post_meta($post_ID, 'Baidu_Submit', 1, true);
    }
}

 function Baidu_Submit_Update($post_ID){
    $url = get_permalink($post_ID);
    $api = "http://data.zz.baidu.com/urls?site=https://meitianxue.net&token=填写你的Token";
    $request = new WP_Http;

    $result = $request->request(str_replace('urls','update',$api), array(
        'method' => 'POST',
        'body' => $url,
        'headers' => 'Content-Type: text/plain'
    ));
    if (is_array($result) && !is_wp_error($result) && $result['response']['code'] == '200') {
        error_log('baidu_submit_result:' . $result['body']);
        $result = json_decode($result['body'], true);
    }

} 

add_action( 'post_updated', 'Baidu_Submit_Update', 0, 1); 
add_action('publish_post', 'Baidu_Submit', 0);



每天学 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:不用插件给WordPress实现百度主动推送
赞(8)
分享到: 更多 (0)

为了阻止垃圾和反动评论,您必须才能发表评论,使用功能只需要1分钟注册好账号!