Wordpress保存帖子动作覆盖后更新

时间:2015-02-19 20:20:48

标签: php wordpress post save sql-update

当我在没有退出的情况下在帖子保存上触发以下动作挂钩时,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')

谢谢!

2 个答案:

答案 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);;
    }
}

在更新元之后,此挂钩被称为,因此它会覆盖之前的值。