2011-10-09 5 views
0

申し訳ありませんが、私はWordPressのサイトでこれを尋ねましたが、それだけではまだ見ていないようです!私はここに再ポストすることでルールを破ることはないと思う。Wordpressプラグインの管理リダイレクトとエラーの返信

私は様々なものを追加したり編集したりするためのフォームを持つ管理セクションを持つwordpressプラグインを開発してきました。今、管理者が成功した場合(更新された値を表示するために)リダイレクトするか、そうでない場合はさまざまなエラーメッセージを表示したいフォームを送信した後。私はwp_redirectを試してヘッダーエラーを取得していますので、ヘッダーエラーメッセージなしでリダイレクトできるようにadd_actionメソッドを使い始めました。私が今問題を抱えているのは、フォームが正しく送信されなかったとしても、エラーの配列が常にnullになることです。私はadd_action前に変数のエラーを定義していると私はそれが移入され提出処理する関数で$エラーののvar_dumpを行う場合add_action内の関数に私は

global $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'); 

そして、フォームの送信は、フォーム

//actual admin page that shows in WP 
    var_dump($errors); // returns NULL 

は常にそれが上記の値を持っている場合でも、nullになります示し、実際の管理ページで

//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 
    } 
    } 

に似ています。誰もこれに対処するためのアドバイスを得た?私はWPプラグインの開発に新しく、ベストプラクティスが何であるかはわかりません。

答えて

1

私はこれをうまく処理したようです。

私は$エラーの配列を宣言する必要があり、実際の管理ページで

グローバルとしてだけでなく

global $errors; 

私はワードプレスが何らかの形で関数に管理ページをボックスしなければならないので、$エラー配列を参照していなかったと思いますグローバル変数。

関連する問題