确定上次更新自定义域的时间?

时间:2016-02-03 作者:Nathan

有人知道一种方法来确定帖子的自定义字段最后一次更新的时间吗?

我试图写一些东西,上面写着“如果CUSTOMFIELD在过去24小时内更新了,请不要做任何事情,否则请更新”,但在数据库中看不到任何时间戳。

有什么好主意吗?

2 个回复
最合适的回答,由SO网友:david_nash 整理而成

我将添加另一个存储更新时间的自定义字段。

然后创建add_action 功能update_post_meta 也可以在写入CUSTOMFIELD的同时保存时间戳。

添加自定义字段时触发的操作为add_post_meta 更新自定义字段时update_post_meta

SO网友:Pieter Goosen

我不知道你想要实现什么,但在我看来,你肯定走错了方向。

更新自定义字段时,实际的post对象不会发生任何变化,因为自定义字段不是WP_Post 对象这意味着不会触发任何与更新post对象本身相关的操作,因此post_modifiedpost_modified_gmt 日期保持不变。归根结底,您不能使用post对象作为何时更新自定义字段的准则。为了兴趣,一定要阅读this answer by @gmazzap about which hooks firing when a post is updated

自定义字段本身也不会保存有关创建、删除或修改日期和时间的任何信息。为此,您需要编写自己的API,并以某种方式将这些相关日期存储在db中,然后调用这些保存的日期进行检查,然后再进行成功和失败运行。

您可能需要查看如下挂钩updated_post_meta 它在自定义字段成功更新后激发,然后对其进行操作以更新由您自己的API创建的某个字段中的某些值。您也可以退房this answer by @JanFabry about all relevant functions and actions regarding custom fields

总之,我想知道是否值得为此编写一个广泛的API。首先,您需要重新思考处理此问题的完整方法,如果确实需要对自定义字段执行此操作,则需要编写一个API来处理完整的CRUD 可靠、安全地处理

编辑

为了避免混淆和可能的错误解释,我们正在讨论更新自定义字段,这就意味着我们只需单击自定义字段元框中的更新按钮。只需点击更新按钮,帖子不会发生任何变化,修改的日期保持不变。

只有当我们明确单击发布元框中的更新按钮时,修改的日期才会更改。虽然post对象没有更改,但post修改日期会更新,就像post对象已更改一样。请记住,我们不需要单击此更新按钮来更新自定义字段,这使得任何依赖此更新自定义字段的方法都非常不可靠

相关推荐

如何让`wp-list-table`显示我在Custom-Post中的`Custom-Fields`

一切都好吗<我需要wp-list-table 也要显示custom-fields 在每个custom-post 我有,但我不知道如何做到这一点,在这幅图中,它显示了带有字段的表格:Title, Author and Publication Date: 我想要的是能够选择custom-fields 将出现,例如以下示例Title, Carta, Naipe, Author, and Date of Publication: