0

所以我有一个帖子元字段,它有两个值,真或假。默认为false,当有事件发生时会自动变为true。

无论如何,是否可以创建另一个元字段来记录此更改发生的确切时间?如果是这样,我将如何去做?

4

1 回答 1

1

好吧,如果不修改 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 不影响“更新”操作,这个包不会让这个字段在第二次被修改。

于 2013-07-12T08:35:25.230 回答