我有一个创建post的函数。在保存新帖子之前,有一个钩子可以在保存之前操作数据:
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
会在线路save_post
之前被function conditional_save
退出吗?如果条件满足,我不想返回任何数据。我试了一下我的代码,它似乎有效——重定向了,没有创建新的帖子。但我想确保function save
真的停止运行。
exit()
将突然停止所有代码的执行。这通常不是个好主意。
请改用FLAGS。
编辑:
FLAG不是保留关键字。只需在条件保存中将var
设置为true/false,即可检查save()
上的标志。根据var
的结果,您可以限制做什么和不做什么。