質問: add_submenu_page()を使った管理メニューの現在のクラス 私はwordpress内でプラグインの管理メニューを作成しようとしています。 add_menu_page()を使用してメニューを正常に登録しましたが、サイドバーに表示されるはずです。 add_submenu_page()を使用してメニュー内にいくつかのセクションも追加しました。wordpress(3.05を実行している)は、どのメニュー項目を "current"としてアクティブにすべきかを正しく示していないようです。メインのダッシュボードメニューにテストページを追加すると、これがわかります。 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のフルページリンクを使用しないでください...ページスラッグとして。特にコールバックを渡す場合は、ページアドレスではなくスラッグを使用するだけです。