5

我们可以根据需要使用 ajax 来更新我们的 post_meta。但是,它不会更改帖子的 modified_time。

我们依靠 get_modified_time 来向用户显示帖子上次更新的时间。(越新越好)

我已经四处搜索,我还没有看到有人使用这种技术。

有人有答案吗?

谢谢!

4

2 回答 2

16

我使用 wpdb::query() 来做到这一点:

global $wpdb;

//eg. time one year ago..
$time = time() - DAY_IN_SECONDS * 365;

$mysql_time_format= "Y-m-d H:i:s";

$post_modified = gmdate( $mysql_time_format, $time );

$post_modified_gmt = gmdate( $mysql_time_format, ( $time + get_option( 'gmt_offset' ) * HOUR_IN_SECONDS )  );

$post_id = /*the post id*/;

$wpdb->query("UPDATE $wpdb->posts SET post_modified = '{$post_modified}', post_modified_gmt = '{$post_modified_gmt}'  WHERE ID = {$post_id}" );

注意:如果要在帖子上明确设置修改日期,则不能使用,因为它调用wp_insert_post(),它确定帖子存在并将post_modified 和 post_modified 变量设置为当前日期。wp_update_post()

于 2018-05-16T08:40:22.627 回答
3

PHP中很简单,80帖子编号在哪里:

// update post_modified and post_modified_gmt `datetime` on a post
$update = array( 'ID' => 80 );
wp_update_post( $update );
于 2019-12-13T14:12:38.137 回答