wordpress定时发布失败——修改方法

wordpress 发布文章的时候 设置 定时发送,发现通常会出现发布失败的现象。

最近发现wordpress定时发布老是失败,网上搜索了很多方法,一一试过了,很多对我来讲,都不适用!在这里盘点一下:

方法一:修改 /wp-includes/cron.php 文件代码,解决WordPress定时发布失败 测试失败

打开 /wp-includes/cron.php 文件
找到 wp_remote_post( $cron_url, array( ‘timeout’ => 0.01, ‘blocking’ => false, ‘sslverify’ => apply_filters( ‘https_local_ssl_verify’, true ) ) );
修改 timeout 时间 ,将 0.01 改成10 或者更大些就可以了

方法二 .安装WP Missed Schedule插件,解决WordPress定时发布失败 测试成功

直接在wordpress后台搜索即可安装,安装启动即可解决问题,无须任何的设置! 

WP Missed Schedule插件下载地址:https://github.com/sLaNGjI/wp-missed-schedule

三. 在主题的 添加自动更新代码,解决WordPress定时发布失败 测试成功。

在主题文件夹创建 cron.php文件 代码如下:

<?php
//自动更新 
//将文件保存cron.php 放到主题的inc目录下,然后functions.php文件中插入如下代码
//require get_template_directory() . '/cron.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<!--Plugin WP Missed Schedule 2011.0920.2011 Active-->";
}
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);

然后在主题的 function.php 文件中加入如下代码

//自动更新
require get_template_directory() . '/cron.php';

发表评论

电子邮件地址不会被公开。 必填项已用*标注