admin.php
で呼び出されるアクションフックが'admin_action_'.$_REQUEST['action']
です。残念ながら、admin.phpの最後ですべてがページにロードされた後(フッターでも)トリガーされるので、プラグインには少し役に立ちません。
なぜそれがそこにあるのか、なぜそのばかげた立場にあるのか、そして何か内部でそれを使っているのかどうか誰かが知っていますか?
Tracの「注釈」機能を介して、 これは3年前に追加されたことがわかります 、 プラグインする汎用POSTハンドラーのリクエスト後 を使用できます。
Googleコード検索で、 少なくともAkismetがこのフックを使用している であり、 core で導入されたときにそこに現れたことがわかります。 admin.php
を直接呼び出すことで動作します (プラグインページではありません)。そこから itは、末尾でリダイレクトを行うことができます 。したがって、トリックはadmin.php?action=your_action
を呼び出すことです。他のURLの動作は保証されません。
多くの(すべてではない)管理ページには、初期化の一種としてadmin.php
が含まれています。この場合、管理ページにはadmin-header.php
の後にadmin.php
が含まれるため、出力が送信される前にアクションが起動されます。これはすべての管理ページで機能するわけではありません。すべてのページにadmin.php
が含まれているわけではなく、他のユーザーが「不正」action
クエリ変数をチェックして、 「本当にそれを実行しますか?」警告( nonceが欠落しているため? )。 プラグインページの場合admin.php
はすべてを実行します :ヘッダーを表示します( noheader
クエリ変数がURL にない場合)、ページを呼び出し、フッターを表示します(コードでexit()
を呼び出していない限り!)。 admin.php
はexit()
自体を呼び出すため、admin_action_
フックは呼び出されません。