所以我有一个帖子元字段,它有两个值,真或假。默认为false,当有事件发生时会自动变为true。
无论如何,是否可以创建另一个元字段来记录此更改发生的确切时间?如果是这样,我将如何去做?
好吧,如果不修改 wordpress 核心或覆盖update_field()
主题 functions.php 中的功能,您将无法顺利获得将记录添加到数据库的时间。
但是我可以给你什么建议:
1)如果您的应用程序在修改 post_meta 时高度依赖 seconds:milliseconds,则应使用高级技术:数据库事务。
2)如果您的应用程序很好,在编写第一个元和第二个元之间有一点延迟,只需在执行的下方使用add_post_meta()添加它update_field()
ps 如果您认为使用functions.php 覆盖该函数是您更喜欢给我发评论的方式,我会尝试通过编辑帖子来帮助您。
干杯!
编辑
在您使用 allready_aired 字段进行操作之后
$alreadyAired = get_field('already_aired', $episodeID);
if (get_field('already_aired', $episodeID) == "no") {
update_field('field_28', "yes", $episodeID);
}
你可以像这样使用add_post_meta($post_id, $meta_key, $meta_value, $unique)函数:
$alreadyAired = get_field('already_aired', $episodeID);
if (get_field('already_aired', $episodeID) == "no") {
update_field('field_28', "yes", $episodeID);
}
add_post_meta($episodeID, 'NEW_TIMESTAMP_FIELD', time(), true);
然后,您可以调用此 NEW_TIMESTAMP_FIELD 并以您喜欢的方式使用(回显格式的日期字符串、比较 2 个日期等)
请注意 add_post_meta 函数的第四个参数。这个告诉你这个字段是唯一的,考虑到 app_post_meta 不影响“更新”操作,这个包不会让这个字段在第二次被修改。