当自定义帖子(在本例中,自定义帖子类型为“booking”)在帖子元更改后更新时,我想更新/删除帖子元。在我的例子中,如果用户更改了post metabooking_status
“拒绝”,然后更新帖子,然后我想删除post\\u metabooking_status
立即
这是我试过的
add_action( \'save_post\', \'booking_status_is_updated\' );
function booking_status_is_updated(){
global $post;
if($post->post_type ==\'booking\'){
if(get_post_meta($post->ID,\'booking_status\',true)==\'denied\'){
delete_post_meta($post->ID,\'booking_slot\');
}
}
}
但这不起作用?我该怎么做?
最合适的回答,由SO网友:s_ha_dum 整理而成
首先,要正确使用挂钩。将传入帖子ID。你不需要$post->ID
.第二,使用正确的钩子。如果你想跑步save_post
仅针对您的预订类型,使用save_post_booking
但除此之外,代码也可以工作。我只是做了个快速测试。
function booking_status_is_updated($post_id){
if(get_post_meta($post_id,\'booking_status\',true)==\'denied\'){
delete_post_meta($post_id,\'booking_slot\');
}
}
add_action(\'save_post_booking\',\'booking_status_is_updated\');