以下内容对我有用。我将元保存和检索挂接到了相同的操作(post\\u transition\\u status),但优先级不同。
//Save Your Custom Meta Meta, but hook it to transition_post_status instead of save_post, with a priority of 1
function save_yourpost_meta(){
global $post;
if($post -> post_type == \'your_post_type\') {
update_post_meta($post->ID, "your_meta_key", $_POST["your_meta_key"]);
}
}
add_action(\'transition_post_status\', \'save_yourpost_meta\',1,1);
//Then retrieve your custom meta only when the post is saved for the first time, not on updates. Hooked to the same action, with a lower priority of 100
function get_meta_on_publish($new_status, $old_status, $post) {
if(\'publish\' == $new_status && \'publish\' !== $old_status && $post->post_type == \'your_post_type\') {
//Get your meta info
global $post;
$postID = $post->ID;
$custom = get_post_custom($postID);
//You have your custom now, have fun.
}
}
add_action(\'transition_post_status\', \'get_meta_on_publish\',100,3);
我希望这有帮助!