1

WordPress 的命令行工具WP-CLI有一个帖子更新命令,用于编辑指定帖子的各个字段。

其中两个标准字段是post_modifiedpost_modified_gmt(MySQL 中的 DATETIME 字段)。

尽管将它们设置为较早的日期,如下所示,它们始终更新为当前日期,例如

wp post update 123 --post_modified="2017-12-31 23:55:55"

如果我然后使用wp post get或查看实际的数据库,这两个字段将始终显示错误的时间,即我运行命令的时间而不是预期的指定时间,尽管我相信我已经在所需格式,0000-00-00 00:00:00.

添加--debug不会给我任何有用的额外信息。

我错过了一些明显的东西吗?

4

1 回答 1

0

这不是错误,而是 Wordpress 的工作方式。它不允许您post_modified通过用户提供的值更新字段。如果您正在更新帖子,就像您的情况一样,无论您通过什么,Wordpress 都会自动将其设置为当前时间。这不是特定于wp-cli.

以下是核心文件中的相关代码

3741        if ( $update || '0000-00-00 00:00:00' == $post_date ) {
3742                    $post_modified     = current_time( 'mysql' );
3743                    $post_modified_gmt = current_time( 'mysql', 1 );
3744            } else {
3745                    $post_modified     = $post_date;
3746                    $post_modified_gmt = $post_date_gmt;
3747            }
于 2019-11-28T11:06:39.627 回答