wordpress定时发布失效/失败的解决办法
有时候,灵感来了,经常会更新几篇文章,但是又不想一次性发布,于是可以使用wordpress自带的定时发布,但是我使用了多次该功能之后,发现每一次都不会成功。
我是用的是国内linux主机,wordpress3.91,主题是Hotnews2.74。也搞不清楚具体是哪个方面出故障了,于是在网上寻找解决办法。目前网上主要有两种办法。亲测第一种方法无效,第二种方法有效。
1,改时间。【此方法亲测无效】
修改 /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。这种方法根本无效。
2,增加代码。使用的是WP Missed Schedule 这个插件的代码。
将该插件的代码添加到 functions.php 的最后面即可:
- <?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)
- ?>
这个方法,亲测有效。
参考文章:http://www.wpdaxue.com/wordpress-schedule.html
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫
评论