質問

プラグイン用の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?...のフルページリンクをページスラグとして使用しないでください。特に、コールバックを渡す場合は、ページアドレスではなくスラッグを使用してください。

ライセンス: CC-BY-SA帰属
所属していません wordpress.stackexchange
scroll top