WordPress изменить дату последнего изменения сообщения к дате публикации (запланированное сообщение)

У меня есть идея изменить значение post_modified, поэтому значение будет иметь то же значение с post_date,

Но Wordpress имеет ревизионную систему, поэтому я хочу изменить post_modified на ревизии, чтобы иметь то же значение с post_date,

Вот мой запрос, чтобы изменить его:

$query = "UPDATE $wpdb->posts 
          SET 
              post_modified = '$recent->post_date',
              post_modified_gmt = '$recent->post_date_gmt'
          WHERE 
              ID = '$update->ID'";

$wpdb->query($query);


$recent->post_date is the post_date (scheduled time / time where our post will appear in the website)

$recent->post_date_gmt is post_date_gmt

$update->ID идентификатор ревизии в таблице сообщений

Но когда я запускаю запрос, он не меняет значение и останавливает мой плагин.

Я что-то пропустил? Или же Wordpress сам по себе не позволяет нам изменять post_modified?

2 ответа

Вы можете использовать обычную функцию wp_update_post

    $args = new stdClass;
    $args->ID = $yourPostIdVal;
    $args->post_modified = $yourDateString;
    $args->post_modified_gmt = $yourGmDateString;
    wp_update_post($args);

Я столкнулся с такой же проблемой, когда пытался обновить post_date. Наконец, я использовал знак "`"для переноса имен столбцов. Сделайте это точно так, как показано ниже.

$postID = $update->ID;
$datetime = date("Y-m-d H:i:s");   



$wpdb->query( "UPDATE `$wpdb->posts` SET 
                                    `post_date` = '".$datetime."'
                                    WHERE `ID` = '".$postID."'" );

Помните, $datetime является действительной датой, например, 2015-01-04 или 2015-01-04 23:59:59

Надеюсь, это поможет. Спасибо

Другие вопросы по тегам