martin-al
  • 0
Учитель

Как разрешить запланированные сообщения с надписью «Пропущенное расписание»

  • 0

Мои будущие сообщения становятся «пропущенными». Они не публикуются вовремя, и там написано «Пропущено расписание».

Я где-то читал, что это может быть проблема с сервером, так как я могу это исправить?

Share
  1. В файл functions.php моей темы добавлено следующее:

    define('WPMS_DELAY', 5);  // Run the below cron task every X minutes
    define('WPMS_OPTION', 'wp_missed_schedule');
    
    function wpms_replacements_deactivate() {
        delete_option(WPMS_OPTION);
    }
    register_deactivation_hook(__FILE__, 'wpms_replacements_deactivate');
    
    // Run the following code on every request
    function wpms_init() {
        remove_action('publish_future_post', 'check_and_publish_future_post');
        $last = get_option(WPMS_OPTION, false);
    
        // Exit here if less than WPMS_DELAY minutes has passed since we last ran
        if (($last !== false) && ($last > (time() - (WPMS_DELAY * 60))))
            return;
    
        // Find all posts whose scheduled time has passed and publish them
        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, 10
        ");
        if (!count($scheduledIDs)) 
          return;
        foreach ($scheduledIDs as $scheduledID) {
            if (!$scheduledID) continue;
            wp_publish_post($scheduledID);
        }
    }    
    add_action('init', 'wpms_init', 0)
    
    • 0

Оставить ответ

You must login to add an answer.