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
Надеюсь, это поможет. Спасибо