Question

Je travaille sur la création d'un menu d'administration au sein de WordPress pour un plug-in. Je l'ai enregistré avec succès le menu à l'aide add_menu_page () et il montre dans la barre latérale comme prévu. J'ai également ajouté quelques sections dans le menu à l'aide add_submenu_page ().

Il semble que WordPress (en cours d'exécution 3,05) n'indique pas correctement quel élément le menu doit être activé comme « courant ».

Quand j'ajouter une page de test au menu principal du tableau de bord est ce que je vois:

http://dl.dropbox.com/u/3019972/wp- screen1.png

Comme vous pouvez le voir la page en cours est visuellement correct dans le menu et est donné une classe de « courant ». Cependant sur mon propre menu, il ressemble à ceci:

http://dl.dropbox.com/u/3019972/wp- screen2.png

Dans cet exemple, j'attendre « Tableau de bord » à mettre en valeur.

Est-ce simplement un bug WordPress? ou dois-je fournir un code spécial pour faire ce travail dans mon propre menu?

Mise à jour avec des exemples de code

Le code que je utilise pour ajouter et créer des looks menus comme ceci:

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' );

}

J'ai commenté le code qui fonctionne et le code qui ne se comporte pas comme je l'attends. Merci pour vos commentaires.

Était-ce utile?

La solution

Essayez ceci:

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' );

Pour l'essentiel: ne pas utiliser les liens avec pleine page admin.php ... comme la limace page?. Surtout si vous callbacks de passage, il suffit d'utiliser une limace, pas une adresse de page.

Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top