Wordpress用のプラグインをいくつか開発しました。現在、私はwpが設定を保存する方法を再現することができませんでした。チュートリアルから学んだ設定ページがあります。それはPOSTからoption.php
へ、そしてwpはデータを保存するように気をつけます。
しかし、もっと複雑な処理が必要なカスタムオプションページがいくつかあります。基本的に私は自分自身のphpにPOSTデータをいくつか渡してから、処理後に元のページ/ URLにリダイレクトしたいと思いました。私は正しくリダイレクトするための「適切な」方法を見つけることができません。つまり、ページ全体をロードせずにJavaScriptを使用してリダイレクトするのです。
現在私はadd_query_arg()
と一緒にGETを使います、URLは私が渡したデータを表示するでしょう。 POSTを使用すると、更新時にリダイレクトプロンプトが表示されます。
自動的にそれを行う組み込みのwp関数はありますか? OR POSTをoption.php
にした場合、自動的に処理されずにデータにアクセスするにはどうすればよいですか。
編集:複雑なページの一つの例はこのようになるでしょう:
私はSU(SpecialUser)と呼ぶいくつかのユーザーにユーザーメタを割り当てます。管理者の仕事を楽にするために、私は彼らがSUであるかどうかを示す列でユーザーのリストを表示するページを持っています。各行のその列のテキストは、クリックするとそのユーザーのSUの状態を切り替えるリンクです。現在私はGETを使用して、ユーザーのIDと実行されるアクションを渡します。アクションとIDの両方が有効であれば、ページ自体が検出し、ユーザーの状態が切り替わります。同時に、更新結果が表示されます。 GETクエリはURLに残ります
私が本当にやりたいことは、POSTを使い、同じページにidとactionを渡し、そして状態をトグルするが何も表示しない、そして更新されたユーザーリストを表示するページに "リダイレクト"することです。これを実装している間に私が先に試みたのは、ページをリダイレクトするためにjavascriptを使用することですが、これはjavascriptが実行されることができる前にページ全体をロードしなければならないことを意味します。それは資源にやさしいものではありません。 Settings APIと同じように機能します。
長い説明でごめんね。やりたいことに用語があると確信していますが、それが何であるかはわかりません。
ありがとう
編集:あなたがプラグインを有効化/無効化するとき、それは多かれ少なかれプラグインページに似ています。プラグインページはGETを使用しています。私が抱えている問題は実際にはリダイレクトしているので、GETやPOSTは関係ないはずです。
wp_redirect() を使用して、必要なものを克服する方法を見つけました。処理が終わったらwp_redirect()
を呼び出します。また、 WordPressおよびwp_redirect()関数の問題 からのアドバイスに従って、phpからのエラー "header already sent"を防ぐためにフォームのアクションまたはリンクにnoheader=true
を追加しました。
設定API を使用している場合は、自分の$ sanitize_callback内で独自のphpを使用できます。 register_setting し、「より複雑な処理」を行った後に保存したい値を返します。