- A+
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的写法是:操作慎重!
update wp-posts setpost_status=REPLACE(post_status,’inherit’,'publish’);
使用插件
插件名叫:WP Missed Schedule 直接在wordpress后台搜索即可安装,安装启动即可解决问题,无须任何的设置!
如果你不想安装插件,也可以直接将该插件的代码添加到 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)
?>