1

我有一个改变 的值的想法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是帖子表中的修订 ID。

但是当我运行查询时,它不会更改值并停止我的插件。

有什么我错过的吗?还是 Wordpress 本身不允许我们更改post_modified?

4

2 回答 2

2

您可以使用普通的 wp_update_post 功能

    $args = new stdClass;
    $args->ID = $yourPostIdVal;
    $args->post_modified = $yourDateString;
    $args->post_modified_gmt = $yourGmDateString;
    wp_update_post($args);
于 2017-01-12T16:00:00.137 回答
0

当我尝试更新 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

希望这会有所帮助。谢谢

于 2015-01-04T07:51:20.723 回答