在保存帖子后有条件地删除帖子元

时间:2015-12-27 作者:aroSuv

当自定义帖子(在本例中,自定义帖子类型为“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\');
     }

   }
}
但这不起作用?我该怎么做?

1 个回复
最合适的回答,由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\');

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在