php退出内部函数

时间:2013-07-05 05:30:15

标签: php wordpress

我有创建帖子的功能。在保存新帖子之前,有一个用于在保存之前操作数据的钩子:

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真的停止运行。

1 个答案:

答案 0 :(得分:0)

exit()将突然停止所有代码的执行。 它通常不是一个好主意。

改为使用 FLAGS

编辑:

FLAG 不是保留关键字。 只需在条件保存中将var设置为true / false,检查save()上的标记。取决于var的结果,您可以限制做什么和不做什么。