我有创建帖子的功能。在保存新帖子之前,有一个用于在保存之前操作数据的钩子:
function save(){
$data = apply_filters('data_before_save',array(....));
$post_id = wp_insert_post( $data );
return $post_id;
}
现在我在$ data中添加东西:
add_filter('data_before_save','conditional_save',10,1 );
function conditional_save( $data ){
//...some stuffs
if( $data['x']== $blabla ){
wp_safe_redirect( $link);
exit();
}else{
$data['x'] = $x;
}
return $data;
}
行function save
之前的function conditional_save
会退出save_post
吗?
如果条件满足,我不希望返回任何数据。我尝试了我的代码,似乎工作 - 重定向,并没有创建新的帖子。但我想确保function save
真的停止运行。
答案 0 :(得分:0)
exit()
将突然停止所有代码的执行。
它通常不是一个好主意。
改为使用 FLAGS 。
编辑:
FLAG 不是保留关键字。
只需在条件保存中将var
设置为true / false,检查save()
上的标记。取决于var
的结果,您可以限制做什么和不做什么。