Извинения, но я спрашивал об этом на сайте WordPress, но, кажется, его не просмотрели, пока один ответил!Надеюсь, я не нарушаю никаких правил, публикуя здесь.
Я разрабатывал плагин для WordPress, в котором есть раздел администратора с формой для добавления и редактирования различных вещей.Теперь после того, как администратор отправил форму, которую я хотел перенаправить в случае успеха (чтобы показать обновленные значения) или показать различные сообщения об ошибках, если нет.Я получил ошибки заголовка от попытки wp_redirect и после просмотра SO я начал использовать метод add_action, чтобы я мог перенаправлять без сообщений об ошибках заголовка.Однако теперь у меня проблема в том, что мой массив ошибок теперь всегда равен нулю, даже если форма была отправлена неправильно.Я определил переменную ошибок перед add_action и в функции в add_action у меня есть
global $errors;
Если я сделаю var_dump из $ errors в функции, которая обрабатывает отправку, которую он заполняет, но затем на моей реальной страницеэто всегда пусто.Я предполагаю, что я не знаком с порядком вызова страниц в WP, и мне чего-то не хватает, но как кто-то еще справляется с этим?
//the index.php for pluging
//require necessary files
$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
, всегда будет нулевым, даже если у него есть значения выше.Кто-нибудь получил какой-нибудь совет, как справиться с этим?Я новичок в разработке плагинов WP, так что не знаю, что лучше.