2011-11-28 67 views
0

我想要做什么: 在WordPress中,当我编辑帖子的自定义字段值时,获取旧值和新值,并对它们进行比较。WordPress:在更新帖子前获取自定义字段值

我现在得到: 我只能得到新的价值。我勾选了pre_post_update操作,并使用get_post_meta()(以及http://codex.wordpress.org/Custom_Fields中描述的一堆相关功能)获取该值。

我也试过get_post(),它可以返回post_contentpost_title等,但get_post()旧值不包括自定义字段值。

我认为在pre_post_update hook被触发的时候,这个值还没有被保存在数据库中,不是吗?事实证明,我可以获得邮政称号的旧价值,证明了这一点。那么必须有一些方法来获得自定义字段的旧值。

如果您可以指出其他方法来比较自定义字段的旧值和新值,也很受欢迎。

非常感谢提前。

+0

我也想这样做 - 我正在考虑在save_post查询中更新新值之前查询数据库。似乎有点多余,所以我仍在寻找更好的方法。 –

回答

1

您无法将旧的自定义字段与新的字段进行比较,因为更新它们时,它也会在db中的“wp_post_meta”表中重写。你失去了新的价值。

1

Pigi已经表明了这一点。它会被覆盖。为什么不使用带有两个键的旧自定义字段,旧密钥和新密钥,并将旧值分配给旧密钥,将新值分配给新密钥。

+0

就像我在原帖中所说的那样,我想在将值保存到数据库之前挂钩操作。你是说在WordPress中没有这样的钩子? – Betty

+0

据我所知,没有。也许你可以尝试在pre_update_post函数的钩子中访问数据库。 – bingjie2680

+0

直接操作数据库不是我喜欢的(我是DB新手> _ <)。我会尽量玩你的两个关键的方法,看看它是否能满足我的需求。无论如何,谢谢。 – Betty

相关问题