我有不止几个元数据库与自定义帖子类型一起使用,我遇到了一个问题,我的数据没有按预期保存。
下面是代码的相关部分,它位于连接到的函数中save_post
.
// Loop through our custom metabox post data
foreach ($_POST[\'product\'] as $key => $value) {
// Clear the previous featured product if it needed
if ($key == \'homefeature\' && $value == \'on\') {
$wpdb->query(
"
UPDATE $wpdb->postmeta
SET meta_value = \'off\'
WHERE meta_key = \'the_prefix_homefeature\'
AND meta_value = \'on\'
"
);
}
// Update meta
update_post_meta($post_ID, \'the_prefix_\' . $key, $value);
}
这个查询似乎工作得很好(我在Wordpress之外进行了测试),但最终该产品不会被标记为
homefeature
. 最奇怪的是如果我
die
在上述循环完成后,它似乎按预期工作。
Wordpress似乎正在缓存查询或其他内容。如果你能帮我弄清楚为什么会发生这种情况,那就太好了,如果你需要更多的信息/代码,请告诉我。
最合适的回答,由SO网友:vancoder 整理而成
我知道保存帖子时会调用save\\u post两次。die()解决了您的问题,这表明第二个调用可能正在撤消第一个调用?
save\\u post也将在autosave上调用,因此您可能也希望消除这些。