Frage

Ich arbeite daran, ein Verwaltungsmenü in WordPress für ein Plugin zu erstellen. Ich habe das Menü erfolgreich mit add_menu_page () registriert und es wird wie erwartet in der Seitenleiste angezeigt. Ich habe auch einige Abschnitte im Menü mit add_submenu_page () hinzugefügt.

Es scheint, dass WordPress (Auslauf 3.05) nicht korrekt angibt, welcher Menüelement als "aktuell" aktiviert werden sollte.

Wenn ich dem Haupt -Dashboard -Menü eine Testseite hinzufüge, sehe ich:

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

Wie Sie sehen können, ist die aktuelle Seite im Menü visuell korrekt und erhält eine Klasse von "aktuell". Auf meinem eigenen Menü sieht es jedoch so aus:

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

In diesem Beispiel würde ich erwarten, dass "Dashboard" hervorgehoben wird.

Ist das einfach ein WordPress -Fehler? Oder muss ich einen speziellen Code bereitstellen, um diese Arbeit in meinem eigenen Menü zu erstellen?

Aktualisiert mit Code -Beispielen

Der Code, den ich zum Hinzufügen und Erstellen von Menüs verwende, sieht folgendermaßen aus:

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

}

Ich habe den Code kommentiert, der funktioniert, und den Code, der sich nicht so erwartet. Danke für deine Kommentare.

War es hilfreich?

Lösung

Versuche dies:

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

Im Wesentlichen: Verwenden Sie keine vollständigen Seitenlinks mit admin.php? ... als Seitenschnecken. Vor allem, wenn Sie Rückrufe verabschieden, verwenden Sie einfach eine Schnecke, keine Seitenadresse.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top