
wordpress自带的定时发布功能是非常方便的,当你只是关注写文章、做内容的时候,当你每天要发布大量的内容时,当你需要放假的时候,文章都需要进行自动定时的更新,这是你就需要一个非常稳定的程序和功能。
wordpress定时发布失败是一个非常常见的问题。介绍一下wordpress定时发布失败的原因。
WordPress定时发布失效的原因
一般情况下,WordPress定时功能不可用,是因为时间超时。WordPress默认发布文章的时间是0.01秒,一旦超过这个时间而没有发布成功,定时发布文章就会失败。
其他的原因造成的定时发布失败,请留言。
WordPress定时发布解决办法
针对超时的原因的解决方法如下。我们找到,控制定时发布的超时的功能文件,然后修改时间设定。
直接修改文件
找到wordpress程序的根目录,找到wp-includes文件夹里的cron.php,将此文件下载到本地,注意备份这个文件后再修改!打开cron.php文件,查找 ‘timeout’ =>。将该代码后面的默认数值0.01修改大一些,比如2.00、3.00,我目前修改的是10.00,只要比0.01大就可以。修改后保存再覆盖原来的cron.php。
修改数据库
这个方法需要你对mysql足够的熟悉,那么可以进行这种方法的操作,但如果你是新手的话,我不建议你使用,毕竟造成数据库的丢失,可是大问题!方式就是:到mysql的结构里找到wp_posts表里的post_status字段,将 inherit 修改为publish
直接SQL的写法是:操作慎重!
1 |
update wp-posts setpost_status=REPLACE(post_status,’inherit’,'publish’); |
使用插件
插件名叫:WP Missed Schedule 直接在wordpress后台搜索即可安装,安装启动即可解决问题,无须任何的设置!
如果你不想安装插件,也可以直接将该插件的代码添加到 functions.php 的最后面即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<span style="color: #000000;"><?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) ?></span> |