WordPress站点文章定时发布失败解决办法
我用的是阿里云 ECS服务器 + WordPress,以前很少遇到文章定时发布失败的情况出现,不过近段时间以来,每次升级之后(比如升级到 WordPress 4.8 和 WordPress 4.9)都出现定时发布的情况。但是我用香港虚拟主机也是同时升级到相应的版本,但是那边的测试站定时发布都是正常的,所以我有十分的理由怀疑是服务器问题而不是 WordPress 有问题。
网上流传的 WordPress 文章定时发布的解决办法有些说什么服务器时间或者时区不对造成的,但是我用的是国内阿里云服务器,后台显示的时间和显示的时间确实是一致的,应该不存在这个问题,而且平时使用一直都是可以正常定时发布的。
还有一些文章说是 WordPress 默认发布文章的时间是 0.01 秒,一旦超过这个时间而没有发布成功,定时发布文章就会失败。然后通过将 /wp-includes/cron.php 系统文件里面的“‘timeout’ => 0.01”中的0.01改大(比如改为10),但是经过懿古今测试依然无效,定时发布文章依然失败。
后来听说定时发布失败可以通过安装插件来解决,提到比较多的就是这款 WP Missed Schedule 插件,可惜在 WordPress 官方的插件库中显示该插件已经被关闭并且不再提供下载了,具体见下图:
不过还好我在 WordPress大学中看到《WordPress定时发布文章/解决定时发布失效》这篇文章的方法二,也就是将 WP Missed Schedule 插件的代码添加到当前主题的 functions.php 文件中,然后我就把这个 WP Missed Schedule 插件的代码放到一个 PHP 文件中,然后在当前主题 functions.php 文件中引入,没想到还真的解决了 WordPress 站点文章定时发布失败的问题。
所以说真正有效解决 WordPress 站点文章定时发布失败的办法应该就是使用 WP Missed Schedule 插件的代码,具体做法如下:
方法一:将 WP Missed Schedule 插件的代码直接添加到当前主题的 functions.php 文件中。
WP Missed Schedule 插件的代码
- <?php
- if(!function_exists(‘add_action’)){
- header(‘Status 403 Forbidden’);header(‘HTTP/1.0 403 Forbidden’);header(‘HTTP/1.1 403 Forbidden’);exit();}
- ?>
- <?php
- function wpms_log(){
- echo“n<!–Plugin WP Missed Schedule 2011.0920.2011 Active–>”;
- }
- add_action(‘wp_head’,’wpms_log’);
- add_action(‘wp_footer’,’wpms_log’)
- ?>
- <?php
- define(‘WPMS_DELAY’,5);
- define(‘WPMS_OPTION’,’wp_missed_schedule’);
- function wpms_replace(){
- delete_option(WPMS_OPTION);
- }
- register_deactivation_hook(__FILE__,’wpms_replace’);
- function wpms_init(){
- remove_action(‘publish_future_post’,’check_and_publish_future_post’);
- $last=get_option(WPMS_OPTION,false);
- if(($last!==false)&&($last>(time()-(WPMS_DELAY*60))))return;
- update_option(WPMS_OPTION,time());
- global$wpdb;
- $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”);
- if(!count($scheduledIDs))return;
- foreach($scheduledIDs as$scheduledID){if(!$scheduledID)continue;
- wp_publish_post($scheduledID);}
- }
- add_action(‘init’,’wpms_init’,0)
- ?>
</div
</div
方法二:将 WP Missed Schedule 插件的代码存放到一个 PHP 文件中,然后在当前主题 functions.php 文件中引入。
下载dingshi.php文件
</div
如在本文下载(密码: 5qsi)解压后得到一个 dingshi.php 文件并放在当前主题中,然后在当前主题的functions.php 文件中添加以下代码:
- require get_template_directory() . ‘/inc/dingshi.php’;
</div
其中 /inc/dingshi.php 就是 dingshi.php 文件的路径地址,如果修改了文件名及路径,记得修改这里哦。
总结</h6
这个只是懿古今在遇到文章定时发布失败问题的解决过程,可能不是最好,但是最起码它是真正帮我解决了问题,所以在我眼中它就是最有效的解决办法。PS:我的服务器是阿里云,如果你也是使用阿里云服务器而且也遇到同样的问题,不妨一试。
你可能感兴趣的文章
- ZBlogPHP主题文章页没有侧边栏怎么办?
- Nana主题升级到3.1版本 修复Debug 模式错误
- 优化解决百度自动推送和360自动收录JS重复推送问题
- boke112导航更换域名的详细操作步骤
- Boke123全新改版上线啦
- Nana、Blogs、zbpNana主题如何增加随机图片?
- 服务器系统日志TermServDevices错误的解决办法
- 纯代码实现WordPress站点文章自动提交熊掌号教程
</p