WordPress:在更新帖子前获取自定义字段值
我想要做什么: 在WordPress中,当我编辑帖子的自定义字段值时,获取旧值和新值,并对它们进行比较。WordPress:在更新帖子前获取自定义字段值
我现在得到: 我只能得到新的价值。我勾选了pre_post_update
操作,并使用get_post_meta()
(以及http://codex.wordpress.org/Custom_Fields中描述的一堆相关功能)获取该值。
我也试过get_post()
,它可以返回post_content
,post_title
等,但get_post()
旧值不包括自定义字段值。
我认为在pre_post_update
hook被触发的时候,这个值还没有被保存在数据库中,不是吗?事实证明,我可以获得邮政称号的旧价值,证明了这一点。那么必须有一些方法来获得自定义字段的旧值。
如果您可以指出其他方法来比较自定义字段的旧值和新值,也很受欢迎。
非常感谢提前。
您无法将旧的自定义字段与新的字段进行比较,因为更新它们时,它也会在db中的“wp_post_meta”表中重写。你失去了新的价值。
Pigi已经表明了这一点。它会被覆盖。为什么不使用带有两个键的旧自定义字段,旧密钥和新密钥,并将旧值分配给旧密钥,将新值分配给新密钥。
就像我在原帖中所说的那样,我想在将值保存到数据库之前挂钩操作。你是说在WordPress中没有这样的钩子? – Betty
据我所知,没有。也许你可以尝试在pre_update_post函数的钩子中访问数据库。 – bingjie2680
直接操作数据库不是我喜欢的(我是DB新手> _ Betty
我也想这样做 - 我正在考虑在save_post查询中更新新值之前查询数据库。似乎有点多余,所以我仍在寻找更好的方法。 –