2016-07-05 2 views
0

Я новичок в wordpress, чтобы узнать, где хранятся данные о расписании. я видел в должности вместо опубликованного статуса данных, показывает будущее, и то же самое публикуется в это время, и статус изменился с будущего на опубликованный. я изменил статус нескольких сообщений непосредственно в базе данных на будущее и изменил время post_date и post_date_gmt в будущем, но он не был опубликован, и статус остался таким же, как и в будущем. Я думаю, что wordpress хранит данные где-то еще в некоторых других таблицах, и он запускает cron на основе этой таблицы. любая помощь будет большимwordpress schedule database entry

хрон vlaues в wp_options являются

a:8: 
{i:1467778980; 
a:1:{s:19:"nxs_querypost_event"; 
a:1:{s:32:"40cd750bba9870f18aada2478b24840a"; 
a:3:{s:8:"schedule";s:11:"nxsreposter";s:4:"args"; 
a:0:{}s:8:"interval";i:90;}}}i:1467781670; 
a:1:{s:16:"nxs_hourly_event"; 
a:1:{s:32:"40cd750bba9870f18aada2478b24840a"; 
a:3:{s:8:"schedule";s:6:"hourly";s:4:"args"; 
a:0:{}s:8:"interval";i:3600;}}}i:1467781924; 
a:1:{s:24:"akismet_scheduled_delete"; 
a:1:{s:32:"40cd750bba9870f18aada2478b24840a"; 
a:3:{s:8:"schedule";s:5:"daily";s:4:"args"; 
a:0:{}s:8:"interval";i:86400;}}}i:1467787812; 
a:3:{s:16:"wp_version_check"; 
a:1:{s:32:"40cd750bba9870f18aada2478b24840a"; 
a:3:{s:8:"schedule";s:10:"twicedaily";s:4:"args"; 
a:0:{}s:8:"interval";i:43200;}}s:17:"wp_update_plugins"; 
a:1:{s:32:"40cd750bba9870f18aada2478b24840a"; 
a:3:{s:8:"schedule";s:10:"twicedaily";s:4:"args"; 
a:0:{}s:8:"interval";i:43200;}}s:16:"wp_update_themes"; 
a:1:{s:32:"40cd750bba9870f18aada2478b24840a"; 
a:3:{s:8:"schedule";s:10:"twicedaily";s:4:"args"; 
a:0:{}s:8:"interval";i:43200;}}}i:1467791880; 
a:1:{s:20:"wp_maybe_auto_update"; 
a:1:{s:32:"40cd750bba9870f18aada2478b24840a"; 
a:3:{s:8:"schedule";s:10:"twicedaily";s:4:"args"; 
a:0:{}s:8:"interval";i:43200;}}}i:1467817919; 
a:1:{s:19:"wp_scheduled_delete"; 
a:1:{s:32:"40cd750bba9870f18aada2478b24840a"; 
a:3:{s:8:"schedule";s:5:"daily";s:4:"args"; 
a:0:{}s:8:"interval";i:86400;}}}i:1467820230; 
a:1:{s:30:"wp_scheduled_auto_draft_delete"; 
a:1:{s:32:"40cd750bba9870f18aada2478b24840a"; 
a:3:{s:8:"schedule";s:5:"daily";s:4:"args"; 
a:0:{}s:8:"interval";i:86400;}}}s:7:"version";i:2;} 
+0

WordPress хрон не является истинным хрон. Он проверяет, есть ли что-то для запуска, когда кто-то посещает какую-либо страницу - поэтому, если у вас нет посещений, ничего не будет обновлено. Начало этого сообщения (https://www.smashingmagazine.com/2013/10/schedule-events-using-wordpress-cron/) объясняет это более подробно. [Этот пост] (http://wordpress.stackexchange.com/questions/84424/scheduled-posts-and-wp-cron-why-dont-scheduled-posts-publish-if-too-old) в стеке WordPress подразумевает, что есть 24-часовое окно, поэтому, если у вас нет посетителей в тот день, когда вам нужен cron для запуска, он может никогда не запускаться (не проверял это). – Hobo

+0

@ Хобо, что я уже знаю. я спросил кое-что еще, что вы написали полностью разную вещь. – tumbin

+0

Извините, неправильно поняли.Думал, что вы ищете возможную причину, по которой cron не стрелял. Я добавлю ответ ниже. – Hobo

ответ

0

TL; DR значения приведены в таблице wp_options, где OPTION_NAME = 'хрон.


Сообщения переносятся из будущего на публикацию с использованием WordPress cron, вы правы. Когда вы планируете публикацию для будущей публикации, WordPress обновляет запись «cron» в таблице опций (wp_options по умолчанию, хотя это будет отличаться, если вы изменили префикс таблицы).

Это adds a publish_future_post entry в сохраненный массив (с использованием функции wp_schedule_single_event()).

Фактическая публикация осуществляется через функцию check_and_publish_future_post().

Значение сериализовано в PHP, поэтому обновление его с помощью запроса базы данных может быть сложным.

Редактировать

В дополнение к моему комментарию, они являются прежде (не будущих сообщений) и после (один пост) будущих значений Я вижу в этой таблице.

До:

'a:4:{i:1467810391;a:3:{s:16:\"wp_version_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:17:\"wp_update_plugins\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:16:\"wp_update_themes\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1467853602;a:1:{s:19:\"wp_scheduled_delete\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1467855934;a:1:{s:30:\"wp_scheduled_auto_draft_delete\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}s:7:\"version\";i:2;}','yes');' 

После:

'a:5:{i:1467802230;a:1:{s:19:\"publish_future_post\";a:1:{s:32:\"c235acd81e1457babc4e93303796723c\";a:2:{s:8:\"schedule\";b:0;s:4:\"args\";a:1:{i:0;i:20;}}}}i:1467810391;a:3:{s:16:\"wp_version_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:17:\"wp_update_plugins\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:16:\"wp_update_themes\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1467853602;a:1:{s:19:\"wp_scheduled_delete\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}i:1467855934;a:1:{s:30:\"wp_scheduled_auto_draft_delete\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}s:7:\"version\";i:2;}' 

Разница является publish_future_post запись:

i:1467802230;a:1:{s:19:\"publish_future_post\";a:1:{s:32:\"c235acd81e1457babc4e93303796723c\";a:2:{s:8:\"schedule\";b:0;s:4:\"args\";a:1:{i:0;i:20;}}}} 
+0

Я не мог найти TL, DR. добавленные значения cron в вопросе – tumbin

+0

Хмм; интересно, если это проблема с версией. Если вы выберете эту строку, добавьте будущую запись (в админ) и выберите еще раз, видите ли вы разницу? – Hobo

+0

Почему я не удивлен, что WP найдет ужасный способ сохранить эту информацию? –

0

Просто добавьте этот код в файл functions.php вашей темы

function wpb_upcoming_posts() { 
     // The query to fetch future posts 
     $the_query = new WP_Query(array( 
      'post_status' => 'future', 
      'posts_per_page' => 3, 
      'orderby' => 'date', 
      'order' => 'ASC' 
     )); 

    // The loop to display posts 
    if ($the_query->have_posts()) { 
     echo '<ul>'; 
     while ($the_query->have_posts()) { 
      $the_query->the_post(); 
      $output .= '<li>' . get_the_title() .' ('. get_the_time('d-M-Y') . ')</li>'; 
     } 
     echo '</ul>'; 

    } else { 
     // Show this when no future posts are found 
     $output .= '<p>No posts planned yet.</p>'; 
    } 

    // Reset post data 
    wp_reset_postdata(); 

    // Return output 

    return $output; 
    } 
    // Add shortcode 
    add_shortcode('upcoming_posts', 'wpb_upcoming_posts'); 
    // Enable shortcode execution inside text widgets 
    add_filter('widget_text', 'do_shortcode'); 

Шорткоды:

<?php echo do_shortcode('[upcoming_posts]');?> 

[upcoming_posts] 

Надежда так ее работы

+0

Мне не интересно показывать будущую почту. thx для ur ответ, который я могу сделать из состояния wp_post. мой intenion должен знать, где именно wordpress хранит будущие данные. один, который я вижу непосредственно в таблице wp_post, я попытался изменить это, но не публиковать. так что есть что-то в wp_options, поэтому, пожалуйста, помогите разобраться в этом – tumbin

+0

проверите эту таблицу {wp} _options под запросом запуска «cron» SELECT * FROM 'wp_options' WHERE' option_name' LIKE '% cron%' –

+0

если не работать, добавьте этот код functions.php $ cron_jobs = get_option ('cron'); var_dump ($ cron_jobs); –