web-dev-qa-db-ja.com

Wordpressプラグイン設定のPOST

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は関係ないはずです。

2
faulty

wp_redirect() を使用して、必要なものを克服する方法を見つけました。処理が終わったらwp_redirect()を呼び出します。また、 WordPressおよびwp_redirect()関数の問題 からのアドバイスに従って、phpからのエラー "header already sent"を防ぐためにフォームのアクションまたはリンクにnoheader=trueを追加しました。

0
faulty

設定API を使用している場合は、自分の$ sanitize_callback内で独自のphpを使用できます。 register_setting し、「より複雑な処理」を行った後に保存したい値を返します。

3
Bainternet