WP酷在换上阿里云服务器后就开始不断囤积文章以备不时之需,最近发现所有设置的定时文章全部发布失败,经过一番搜索后得出答案。话不多说,两种方法任选其一:
1、安装MY Missed Schedule插件:http://wordpress.org/plugins/my-missed-schedule/
2、添加以下代码至主题目录 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) ?>
问题仍未…解决?
若问题仍未解决,可能是因为 WP-Cron 没有正确的设置定时任务。可尝试至主机管理面板中自行添加定时任务(Create Cron Job),命令如下,设置为每5分钟执行一次:
wget -O /dev/nullhttp://example.com/wp-cron.php
请注意将example.com更换为博客域名。
我记得是post空数据的吧。。。。。wget貌似没用额
@极雪 =-=好像是wget来着,某个国外大神的文章