我一直在开发一个wordpress插件,它有一个带有表单的管理部分,可以添加和编辑各种内容。现在,在管理员提交表单后,如果成功,我想重定向表单(以显示更新的值),如果不成功,则显示各种错误消息。我在尝试wp\\u重定向时遇到了标头错误,在仔细查看之后,我开始使用add\\u操作方法,以便在没有标头错误消息的情况下重定向。但我现在的问题是,我的错误数组现在总是空的,即使表单没有正确提交。我在add\\u action之前定义了errors变量,在add\\u action中的函数中
global $errors;
如果我在处理提交的函数中执行$errors的var\\u转储,则会填充它,但在我的实际页面上,它始终为空。我的猜测是,我不熟悉在WP中调用页面的顺序,我遗漏了一些东西,但其他人是如何处理的?
//the index.php for pluging
//require necessary files
global $errors = null;
include(\'plugin_file.php\');
//Tie into wordpress hooks
add_action(\'widgets_init\', \'plugin::register_func\');
add_action(\'admin_menu\', \'plugin::add_menu_item\');
add_action(\'admin_init\', \'plugin::check_form_submission\');
那么表单提交类似于
//THE Class file for my plugin
static function check_form_submission(){
global $errors;
if(empty($_POST[\'some_field\'])){
$errors[\'some-error\'] = \'some error\';
}
if(!$errors){
//handle and redirect here
}else{
var_dump($errors); // does have values
}
}
在显示表单的实际管理页面中
//actual admin page that shows in WP
var_dump($errors); // returns NULL
将始终为null,即使它具有以上值。有人对如何处理这件事有什么建议吗?我是WP插件开发新手,所以不确定最佳实践是什么。