Domanda

Sto lavorando sulla creazione di un menu di amministrazione all'interno di WordPress per un plugin. Ho registrato con successo il menu utilizzando add_menu_page () e si vede nella barra laterale come previsto. Ho anche aggiunto un paio di sezioni all'interno del menu utilizzando add_submenu_page ().

Sembra che WordPress (in esecuzione 3.05) non indica correttamente che la voce di menu deve essere attivato come "corrente".

Quando si aggiunge una pagina di prova al menu Dashboard questo formato è quello che vedo:

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

Come si può vedere la pagina corrente è visivamente corretta all'interno del menu e viene data una classe di "corrente". Tuttavia il mio proprio menu che appare così:

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

In questo esempio mi sarei aspettato "Dashboard" per essere evidenziato.

Si tratta semplicemente di un bug di WordPress? o ho bisogno di fornire il codice speciale per fare questo lavoro nel mio proprio menu?

Aggiornato con esempi di codice

Il codice che sto usando per l'aggiunta e la creazione di menu simile a questo:

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

}

ho commentato il codice che funziona e il codice che non si comporta come mi aspetto. Grazie per i vostri commenti.

È stato utile?

Soluzione

Prova questo:

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

In sostanza: non utilizzare i collegamenti a piena pagina con admin.php ... come pagina lumaca?. Soprattutto se si passa callback, basta usare una lumaca, non un indirizzo di una pagina.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a wordpress.stackexchange
scroll top