WordPress的'命令行工具WP-CLI具有post update命令,用于编辑指定帖子的各个字段。
其中两个标准字段是post_modified
和post_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
并没有给我任何有用的额外信息。
我错过了一些明显的东西吗?
答案 0 :(得分:0)
这不是Bug,而是Wordpress的工作方式。它不允许您通过用户提供的值来更新post_modified
字段。如果您要更新帖子(如您的情况),则无论您通过什么,Wordpress都会自动将其设置为当前时间。
这不特定于wp-cli
。
下面是Core File中的相关代码
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 }