私は常に同じ悩みにぶつかっていますので、アイデアや経験があるかどうか見てみたいと思いました...
独自の管理ページを使用するプラグインを作成しました。しなければなりません。WP_List_Table()を整理したので、それは素晴らしいと言わざるを得ません...しかし....
カスタムプラグインページadmin.php?page=...
は、プラグインディレクトリから直接ロードする場合を除き、常にロードされますが、そうではありません。そのページから「アクション」を実行する場合、どういうわけかそれを処理してから、アクションパラメーターなしでページにリダイレクトする必要があります。GETまたはPOSTを実行しても、実際には関係ありません。
内部ページすべてで、WPは同じページでこれを行い、アクションがあるかどうかを確認し、アクションがある場合はそれを処理し、アクションなしで自分自身にリダイレクトします。これらのページでadmin-header
はまだロードされていないため、これは可能です。
ただし、自分のページで実行しようとすると、管理インターフェイスの半分が既にブラウザに送信されているため、リダイレクトはもうできません。明らかに、解決策は、別のページに直接POST / GETし、その上にWPフレームワークをロードし、処理を行ってから元のページにリダイレクトすることですが...しかし...それは少し面倒です...ページはコールバック経由でロードされるため、クラスのメソッド内で実行されます。美しいです。
別のページを読み込むと、手動でwp-load.php
クラスの外に追加する必要があり、クラスの外にいますが、これは迷惑であり、特にバグがあります。これは、プラグインクラスを匿名でインスタンス化するだけで誰にもアクセスできないためです外部から。
それで、この長い話の後に...だれかが管理インターフェイス全体を既にセットアップせずに、コールバックを介して別のページを読み込むための良い解決策を思いつきましたか?
(回避策を知っています... load-....
アクションパラメーターをチェックし、処理とリダイレクトを行う関数にフックすることができます。しかし、もっと良い方法があるかどうか疑問に思っています。)
ありがとう。
plugin-wp-pagenavi
ためかわからない...私はそれがプラグインと管理メニューの相関関係に関するものだと思っていた。私の質問はそれに関連しているので、そのタグを選択しました。
[admin-menu]
ここで使用することもできますが、実際にそれに関連するとは思いません。タグを適切と思われるものに変更しました。もちろん、再度編集することができます。
[plugin-wp-pagenavi]
ますか?[plugin-development]
ここでは大歓迎です。