当我在没有退出的情况下在帖子保存上触发以下动作挂钩时,Wordpress会覆盖我为某些字段设置的值(不是全部)。特别是_variable_pricing键。当我设置退出;在此功能之后并阻止Wordpress完成整个操作,该字段在数据库中正确更新。我觉得这似乎有些不对劲?
function edit_photo_meta($post_id)
{
# Update meta
//... other fields to update
update_post_meta($post_id, '_variable_pricing', 1);
exit;
}
add_action('save_post', 'edit_photo_meta')
谢谢!
答案 0 :(得分:0)
可能的自动保存。
尝试
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
return;
在函数edit_photo_meta
中答案 1 :(得分:0)
可能是行动的顺序挂钩。你最好挂钩更新的meta:
add_action( 'updated_post_meta', 'override_post_meta', 10, 4 );
function override_post_meta( $meta_id, $post_id, $meta_key, &$meta_value )
{
if ( '_variable_pricing' == $meta_key ) {
update_post_meta($post_id, '_variable_pricing', 1);;
}
}
在更新元之后,此挂钩被称为,因此它会覆盖之前的值。