add_submenu_page()を使用した管理メニューの現在のクラス
-
16-10-2019 - |
質問
プラグイン用のWordPress内で管理メニューの作成に取り組んでいます。 add_menu_page()を使用してメニューを正常に登録しましたが、予想どおりサイドバーに表示されます。また、add_submenu_page()を使用してメニュー内にいくつかのセクションを追加しました。
WordPress(3.05の実行)は、どのメニュー項目を「電流」としてアクティブにするかを正しく示していないようです。
メインダッシュボードメニューにテストページを追加すると、これは私が見るものです。
http://dl.dropbox.com/u/3019972/wp-screen1.png
ご覧のとおり、現在のページはメニュー内で視覚的に正しく、「現在」のクラスが与えられています。しかし、私自身のメニューでは、次のようになります。
http://dl.dropbox.com/u/3019972/wp-screen2.png
この例では、「ダッシュボード」が強調表示されると予想されます。
これは単なるWordPressのバグですか?または、これを自分のメニュー内で作業するために特別なコードを提供する必要がありますか?
コードの例で更新されました
メニューを追加して作成するために使用しているコードは、次のようになります。
add_action('admin_menu','my_admin_menu');
function my_admin_menu() {
// this test works as expected
// add_submenu_page( 'index.php', 'test', 'test', 'read', 'admin.php?page=plugin-dashboard','my_pluggin_dashboard' );
// my main menu menu
add_menu_page(__('My Plugin', 'myplugin'),__('My Plugin', 'myplugin'), 'edit_posts','admin.php?page=plugin-dashboard','my_plugin_dashboard','icon');
// dashboard submenu - this fails to highlight with current
add_submenu_page('admin.php?page=plugin-dashboard', __('Dashboard','myplugin'), __('Dashboard','myplugin'), 'edit_posts', 'admin.php?page=plugin-dashboard', 'my_plugin_dashboard' );
// settings submenu - this fails to highlight with current
add_submenu_page('admin.php?page=plugin-dashboard', __('Settings','myplugin'), __('Settings','myplugin'), 'manage_options', 'admin.php?page=my-plugin-settings', 'my_plugin_settings' );
}
私は、動作するコードと、私が期待して動作しないコードにコメントしました。コメントしてくれてありがとう。
解決
これを試して:
add_menu_page(__('My Plugin', 'myplugin'),__('My Plugin', 'myplugin'), 'edit_posts','my-plugin-dashboard','my_plugin_dashboard','icon');
// dashboard submenu - this fails to highlight with current
add_submenu_page('my-plugin-dashboard', __('Dashboard','myplugin'), __('Dashboard','myplugin'), 'edit_posts', 'my-plugin-dashboard', 'my_plugin_dashboard' );
// settings submenu - this fails to highlight with current
add_submenu_page('my-plugin-dashboard', __('Settings','myplugin'), __('Settings','myplugin'), 'manage_options', 'my-plugin-settings', 'my_plugin_settings' );
基本的に:admin.php?...のフルページリンクをページスラグとして使用しないでください。特に、コールバックを渡す場合は、ページアドレスではなくスラッグを使用してください。
所属していません wordpress.stackexchange