WordPress百度链接主动提交插件:Baidu-links-submit优化版

今早就有朋友在张戈博客留言,说百度又推出了主动提交的 WordPress 插件,让我看看。

官方公告如下:

为了方便广大使用 wordpress 建站的站长朋友及时提交数据,百度站长平台设计和开发了一款 wordpress 插件—Baidu Links Submit 工具,该工具是基于百度站长平台 ping2.0 的链接提交接口。本插件只需您简单的配置下您的 site 和 token 即可使用。确保您的网站以快速的提交方式,以保证新链接可以及时被百度收录。

其实很多人以为这个插件就是百度以前推出的 WordPress 结构化数据插件的更新版本,而实际上,在我看完代码后发现其实是针对百度近期推荐的主动提交功能的 WordPress 插件。

Wordpress百度链接主动提交插件:Baidu-links-submit优化版

对于主动提交,其实张戈博客在第一时间就分享了代码版,包括 wp_http、curl_init 和 file_get_contents 三种推送方案,不想用插件的朋友可以继续使用代码版:

WordPress 发布文章主动推送到百度,加快收录保护原创

我亲自安装看了下,发现还能显示当日提交限额、已提交数量和剩余数量:

Wordpress百度链接主动提交插件:Baidu-links-submit优化版

这倒是不错,虽然代码版我也能轻松实现,只要借鉴一下插件的查询函数即可,但是代码版就应该保持代码版的简洁高效才好。

但是,在我看完整个插件的关键代码后,发现依然存在以前那个结构化插件的弊病:修改已发布文章或页面会重复推送到百度!一是会拖慢文章更新提交的速度,二是重复提交很有可能会被百度判断为内容不稳定而放入沙盒,造成收录延迟展示的问题!

不过,有了以前的思路,我很简单的就解决了重复推送的问题:文章首次发布时,会推送到百度,如果推送成功则新增一个名称为 baidusubmit 的自定义栏目。回头再来更新修改该文章时,则先判断是否存在这个自定义栏目,如果存在则不再推送到百度。

简单贴一下我修改 2 个关键的地方:

①、推送前先进行自定义栏目的判断:

Wordpress百度链接主动提交插件:Baidu-links-submit优化版

②、成功推送后则新增自定义栏目:

Wordpress百度链接主动提交插件:Baidu-links-submit优化版

这样就保证了每篇文章只会成功推送一次。如果你铁了心想让某篇文章再大改后重新推送到百度,则只需要删除该文章的自定义栏目 baidusubmit 即可:

Wordpress百度链接主动提交插件:Baidu-links-submit优化版

如果还有疑问,建议阅读一下张戈博客以前分享的相关文章:

BaiduSubmit:百度 WordPress 结构化数据插件(改进版)

WordPress 发布文章主动推送到百度,加快收录保护原创

最后,提供优化版的下载地址:

地址一点击下载

本站提供的下载内容版权归本站所有。转载 必须 注明出处!

* 标有 “转载” 字样的文章,内容版权归原作者所有。


地址二点击下载

本站提供的下载内容版权归本站所有。转载 必须 注明出处!

* 标有 “转载” 字样的文章,内容版权归原作者所有。


如果你想安装这个插件,那么推荐你使用张戈博客分享的优化版,有益而无害!

安装插件后,记得到插件设置界面填写域名和 token 值【token 值获取地址】。另外,如果之前已经集成了张戈博客的代码版,请记得删除掉,否则首次发布文章会连续推送 2 次!


2015-09-27 更新记录:

首先感谢露兜大神的给力提醒,为了减少垃圾数据的产生,将插件的判断机制改成:

①、文章首次发布时进行推送,如果推送失败则新增自定义栏目 Baidusubmit,值为 false:

//判断推送结果,如果失败则计入自定义栏目 Baidusubmit,值为 false
if (!$error = $http->error()) {
      $ret = self::obj_to_array(json_decode($result, true));
      if (isset($ret['error'])) {
            add_post_meta($post_id, 'Baidusubmit', 'false', true);
      }
}

②、再次编辑更新文章,若检测到存在值为 false 的自定义栏目 Baidusubmit,则再次推送并删除这个自定义栏目。当然, 如果推送失败将继续添加,进入第二轮:

//只有在首次发布文章时才进行推送
$Baidusubmit = get_post_meta($post_id,'Baidusubmit',true);
if ( get_post_status( $post_id ) == 'publish' && $_POST['original_post_status'] != 'publish' ) {
     Baidu_common::post($_url, $post_id);        
//如果存在发布失败的自定义栏目 Baidusubmit,则在编辑文章时再次推送
} else if( $Baidusubmit === 'false' )  {
     delete_post_meta($post_id, 'Baidusubmit');
     Baidu_common::post($_url, $post_id);
}

Ps:这里设置并判断值是否为 false,主要是为了避免重复推送以前 Baidusubmit 值为 1 的文章。

③、另外,插件获取文章地址的写法存在冗余调用:

$_url = get_permalink(get_post($post_id));
已改成:
$_url = get_permalink($post_id);

这个改进,同样感谢露兜的提醒!如果已在正常使用则没必要折腾这个更新,当然如果你是一个强迫症,那就另说了…


2015-09-28 更新记录:

在百度官方贴中发现作者已更新了插件,主要是为了解决插件在低版本下会报致命错误的问题。所以,张戈博客也在发现后第一时间更新了本文分享的优化版插件,使用报错或者首次使用只需从本文下载安装即可。已正常使用的朋友可以无需更新。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇