web-dev-qa-db-ja.com

メニューなしの管理者設定画面

私は管理者パネルのいくつかのページからサブ設定を作成したいです。例えば:

私はこのように設定メニューを設定しました:

add_menu_page( 'E+', 'CRE+', 8, 'cr_e_plus_user_config', 'cr_e_plus_user_config');
add_submenu_page( 'cr_e_plus_user_config', 'E+', 'Configurations', 8, 'cr_e_plus_user_config', 'cr_e_plus_user_config');

Configurationsページから、特定のリンクをクリックしたときに別のページを読み込む必要があります。今、私はそれを私がそれを表示することができる前にそれが特定のパラメータを必要とするので、この新しいページがメニューにリストされることを望まない。

5
ariefbayu

管理者ページは基本的には機能へのフックに他ならないので、メニューを使わずにあなた自身のページを追加することは技術的に問題ではありません。

私はあなたが簡単に自分のページを登録することを可能にするAPI関数を知りませんでした、しかしあなたが使うことができるWordpressのヘルパー関数があります:get_plugin_page_hookname()(非公開関数)。その次に、フックはすべてのページフックのグローバルレジストリ($GLOBALS['_registered_pages'])に登録される必要があるので、ページが要求されたときに有効と評価されます。

いくつかのサンプルコードでそれをラップして、/wp-content/mu-pluginsフォルダに保存します。 admin_page_demo.php(Wordpress MU-Plugin Example)

そこにはadmin_menuフックごとに必要なコールバックを登録できる関数register_admin_page()があります。これは重要なことです、 管理メニューを追加する(Wordpress Codex) と比較してください。

この関数は新しい管理ページのURLを返します。あなたはもっとパラメータを追加する必要があるかもしれないと書いたので、私はそれが便利かもしれないと思いました。

この例にハードコードしたデモページの場合、URLは/wp-admin/options-general.php?page=adminpagedemo_demo_pageです。

Wordpressはそうではないので、あなた自身でそのページのセキュリティをチェックする必要があることを覚えておいてください。何かのようなもの

current_user_can( ... );
wp_die( __('You do not have sufficient permissions to access this page.') );

役に立つ追加のヒントかもしれません。

5
hakre