什么是 WordPress定时发布文章和功能失效的解决办法

最近发现 WordPress的定时发布文章的功能是十分有用的,也许有朋友还没有注意到,会问为什么要定时发布文章?

定时按量发布文章,对于用户体验和 SEO都有比较大的好处。因为不少朋友编辑网站内容和写博客都是不太有规律的,有兴致的时候一连发好几篇文章,没兴致的时候可能很多天也不发一篇。你换位思考一下,如果你喜欢并订阅了某个网站博客,但是对方发文章很没有规律,你会不会比较反感不再关注了?

一般建议的做法是:按时按量发布文章。比如你一个月大概写 10篇文章,那就尽量 3天发布一篇,而且定在当天的固定时段,这样一来不仅访客比较容易找到你的规律,就连搜索引擎的蜘蛛也一样会比较按规律办事的。

那么如何定时发布文章?

在发布文章的界面右边的【发布】选项,点击一下[立即发布]右边的“编辑”,就会出现可以选择发布日期和时间,设定后,确定即可。

wordpress定时发布

如果你使用Windows Live Writer发布文章,只需要勾选日期,然后修改时间即可

注意:

1、如果你的服务器是在国外,要先在“设置”-“常规”中将时间格式设置一下,我们国内的时间是UTC+8。

2、时间是按服务器的时间来算的,不是本地电脑时间,所以有可能会有几分钟误差。最好先测试一下几分钟后的定时,看着它定时发布/更新一篇文章。

3、如果想要取消定时发布功能,点击第一行的状态:草稿,选择编辑然后更改为草稿,再点击更新文章就OK啦。

 

WordPress定时发布功能失效的解决办法

因为 WordPress默认发布文章的时间是0.01秒,而我们的服务器网络不可能一直那么好,一旦超过这个时间而没有发布成功,定时发布文章就会失败。这里推荐使用第一种方法或安装插件:

解决方法一:修改 /wp-includes/cron.php 系统文件

打开 wp-includes目录下面的 cron.php文件,找到“timeout”代码:

wp_remote_post( $cron_url, array( 'timeout' => 0.01, 'blocking' => false, 'sslverify' => apply_filters( 'https_local_ssl_verify', true ) ) );

将代码后面的数值0.01修改为比0.01大就可以了,比如可以修改为10.00。

注意:WordPress版本更新后会被覆盖,你需要再次修改这个文件。

解决方法二:使用 wordpress插件

最简单的解决 wordpress定时发布失败问题!可以到后台搜索 安装插件 MY Missed Schedule 或者 WP Missed Schedule Posts,哪个好用就看自己喜欢了。安装启动即可解决问题,无须任何的设置!

解决方法三:自行添加函数代码

如果你不想安装插件,也可以直接将以下代码添加到 functions.php 中即可:

  1. <?php
  2. if(!function_exists('add_action')){
  3. header('Status 403 Forbidden');header('HTTP/1.0 403 Forbidden');header('HTTP/1.1 403 Forbidden');exit();}
  4. ?>
  5. <?php
  6. function wpms_log(){
  7. echo"\n<!--Plugin WP Missed Schedule 2011.0920.2011 Active-->";
  8. }
  9. add_action('wp_head','wpms_log');
  10. add_action('wp_footer','wpms_log')
  11. ?>
  12. <?php
  13. define('WPMS_DELAY',5);
  14. define('WPMS_OPTION','wp_missed_schedule');
  15. function wpms_replace(){
  16. delete_option(WPMS_OPTION);
  17. }
  18. register_deactivation_hook(__FILE__,'wpms_replace');
  19. function wpms_init(){
  20. remove_action('publish_future_post','check_and_publish_future_post');
  21. $last=get_option(WPMS_OPTION,false);
  22. if(($last!==false)&&($last>(time()-(WPMS_DELAY*60))))return;
  23. update_option(WPMS_OPTION,time());
  24. global$wpdb;
  25. $scheduledIDs=$wpdb->get_col("SELECT`ID`FROM`{$wpdb->posts}`"."WHERE("."((`post_date`>0)&&(`post_date`<=CURRENT_TIMESTAMP()))OR"."((`post_date_gmt`>0)&&(`post_date_gmt`<=UTC_TIMESTAMP()))".")AND`post_status`='future'LIMIT 0,5");
  26. if(!count($scheduledIDs))return;
  27. foreach($scheduledIDs as$scheduledID){if(!$scheduledID)continue;
  28. wp_publish_post($scheduledID);}
  29. }
  30. add_action('init','wpms_init',0)
  31. ?>

还有一种方法不太推荐,就是修改数据库里 post_status字段来解决 wordpress定时发布失败的问题

这个方法需要你对 mysql足够的熟悉,如果你是新手的话,并不建议你使用,毕竟造成数据库的问题,可是大问题!方法就是:到 mysql的结构里找到 wp_posts表里的 post_status字段,将 inherit 修改为 publish

直接 SQL的写法是:(操作慎重!)

update wp-posts setpost_status=REPLACE(post_status,’inherit’,'publish’);

好了,从现在开始,为了用户体验和更好的SEO效果计划使用 wordpress定时发布功能有规律的更新你的网站博客吧!

 

转载请注明链接地址:荐爱小站 » 什么是 WordPress定时发布文章和功能失效的解决办法

赞 (1) 赏 !

觉得文章有用就打赏一下吧,赠人玫瑰手有余香!

支付宝扫一扫打赏

微信扫一扫打赏