WordPress定时发布文章主动推送到百度

2019-10-2111:00:54 评论 4,725

我们一般使用wp发布后主动推送(实时)到百度,但随时场景需求变化,定时发布的频率也在增加,为此我们需要结合两者,即实现WordPress定时发布文章主动推送到百度的功能

WordPress定时发布文章主动推送到百度

今天分享实现的方法: 只需要将一段代码加入到funtions.php就可以搞定了。

/*
 * 百度主动推送:发布、定时发布文章
 * 当状态=publish,或从future变成publish时触发
 */
add_action('save_post', 'ub_save_post_notify_baidu_zz', 10, 3);
add_action('publish_future_post', 'ub_save_post_notify_baidu_zz');
function ub_save_post_notify_baidu_zz($post_id)
{
    global $post;
 
    if (empty($post_id)) {
        return;
    }
    
    $status = $post->post_status;
    if ($status != '' && $status != 'publish') {
        return;
    }
 
    $baidu_zz_api_url = 'http://data.zz.baidu.com/urls?site=www.网址.com&token=你的token';
 
    $response = wp_remote_post($baidu_zz_api_url, array(
        'headers'   => array( 'Accept-Encoding' => '', 'Content-Type' => 'text/plain' ),
        'sslverify' => false,
        'blocking'  => false,
        'body'      => get_permalink($post_id),
    ));
}

需要注意的是这里使用到的钩子save_postpublish_future_post。很多同学在写WordPress主动推送到百度都使用了publish_post钩子

为什么要使用save_post呢?

  • 有些文章需要持续维护,要实现修改后也提交给百度
  • 对发布的定义不只是publish,而是修改也存在可能性

所以我使用了save_post。而publish_future_post钩子是当一篇文章由定时发布到发布成功后,就会触发此钩子。同时在触发主动推送前还要做判断必须是publish,否则中断

  • 版权声明: 发表于 2019-10-2111:00:54
  • 转载注明:https://www.wanqiandu.com/3362.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: