一聚教程网:一个值得你收藏的教程网站

热门教程

解决WordPress定时发布文章失败的问题

时间:2022-06-25 18:38:59 编辑:袖梨 来源:一聚教程网

解决办法

function Bing_cron_request( $request ){
    $request['args']['timeout'] = 2;//如果还不能发布把 2 适当改大
    return $request;
}
add_filter( 'cron_request', 'Bing_cron_request' );

解决一

修改 /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。

倡萌不是很推荐这种方法,因为WordPress版本更新后,你需要再次修改这个文件。


解决办法二

使用WP Missed Schedule插件

下载 WP Missed Schedule ,安装启用即可;如果你不想安装插件,也可以直接将该插件的代码添加到 functions.php 的最后面即可:


if(!function_exists('add_action')){
 header('Status 403 Forbidden');header('HTTP/1.0 403 Forbidden');header('HTTP/1.1 403 Forbidden');exit();}
?>
 function wpms_log(){
  echo"n";
  }
  add_action('wp_head','wpms_log');
  add_action('wp_footer','wpms_log')
?>
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)
?>

热门栏目