wake-up-neo.com

Admin-Menü als Untermenü von einem anderen Plugin

Ich möchte das Admin-Menü meines neu entwickelten Plugins einem vorhandenen Plugin als Untermenü hinzufügen. Wäre das möglich?

In meinem ersten Plugin initialisiere ich die Menüs wie folgt:

function add_pages() {
    // Add a new top-level menu (ill-advised):
    add_menu_page(__('MyMenu','menu-test'), __('MyMenu','menu-test'), 'manage_options', 'menu-top-level-handle', array ($this , 'menu_toplevel_page' ) );

    // Add a second submenu to the custom top-level menu:
    add_submenu_page('menu-top-level-handle', __('Test Submenu','menu-test'), __('Test Submenu','menu-test'), 'manage_options', 'sub_page_test', array($this , 'test_sublevel_page2') );
}

Der Code im zweiten Plugin:

function admin_menu () {    
    add_submenu_page( 'menu-top-level-handle', 'Lexikon', 'Lexikon', 'manage_options', 'lexikon-edit', array($this , 'lexikon_settings_page') );
}

Dann habe ich in meinem zweiten Plugin Folgendes versucht, aber die Seite wurde stattdessen falsch umgeleitet:admin.php?page=sub_pageleitet zu/sub_pageweiter.

5
fefe

Bei dem Versuch, das Problem zu simulieren, ist es dasselbe passiert (wp-admin/submenu_slug), und die Lösung besteht darin, dem Hook admin_menu einen Prioritätswert hinzuzufügen.

Hier füge ich dem Plugin BackWPup ein Untermenü hinzu. Beachten Sie die Priorität11:

add_action('admin_menu', 'third_party_submenu_wpse_91377', 11 );

function third_party_submenu_wpse_91377() 
{
    add_submenu_page(
        'backwpup', // Third party plugin Slug 
        'My plugin', 
        'My plugin', 
        'delete_plugins', 
        'third_party_submenu', 
        'plugin_options_wpse_wpse_91377'
    );
}

function plugin_options_wpse_wpse_91377() 
{ 
    echo '<h1>OK</h1>'; 
}

enter image description here

6
brasofilo