web-dev-qa-db-fra.com

Création de WordPress Plugin uniquement pour le panneau d'administration avec un menu et des sous-menus

J'essaie de créer un plugin WordPress qui permet au client d'utiliser de l'aide et d'autres ressources dans une interface conviviale. Je souhaiterais avoir des conseils sur la création d’un plug-in WordPress avec un menu principal dans le tableau de bord et des sous-menus pouvant contenir du contenu HTML. Comme je suis un nouveau dans le développement WordPress, j’ai eu du mal à comprendre le WP Codex.

snapshot

C'est le code du plugin:

/** add menu. */
add_action( 'admin_menu', 'my_plugin_menu', 'my_magic_function' );
add_submenu_page( 'my_plugin_menu', 'Page title', 'Sub-menu title', 'manage_options', 'my-submenu-handle', 'my_magic_function');


function my_plugin_menu() {
        add_options_page( 'My Plugin Options', 'My Plugin', 'manage_options', 'my-unique-identifier', 'my_plugin_options' );
}

function my_plugin_menu() {
        add_options_page( 'Submenu', 'My Plugin', 'manage_options', 'my-submenu-handle', 'my_plugin_options' );
}

/** html. */
function my_plugin_options() {
        if ( !current_user_can( 'manage_options' ) )  {
                wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
        }
        echo '<div class="wrap">';
        echo '<p>Main page</p>';
        echo '</div>';
}

function my_plugin_options() {
        if ( !current_user_can( 'manage_options' ) )  {
                wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
        }
        echo '<div class="wrap">';
        echo '<p>submenu page</p>';
        echo '</div>';
}
2
user35044

Voici un exemple simple pour commencer avec le bon code. Cela crée un élément de menu principal à l'aide de add_menu_page, puis associe un sous-menu à l'aide de add_submenu_page. Les deux appellent une fonction différente pour la sortie.

Notez que la fonction add_submenu_page est liée au menu parent à l'aide de customteam qui est le $menu_slug de add_menu_page.

add_action( 'admin_menu', 'register_my_custom_menu_page' );
add_action( 'admin_menu', 'register_my_custom_submenu_page' );

function register_my_custom_menu_page(){
    add_menu_page( 'Team Kit', 'Team Kit', 'manage_options', 'customteam', 'my_custom_menu_page'); 
}

function register_my_custom_submenu_page() {
    add_submenu_page( 'customteam', 'Team info', 'Team info', 'manage_options', 'my-custom-submenu-page', 'my_custom_submenu_page' ); 
    add_submenu_page( 'customteam', 'Crew Stats', 'Crew Stats', 'manage_options', 'my-custom-submenu-page_2', 'my_custom_submenu_page_2' );
    //add_submenu_page_3 ... and so on
}

function my_custom_menu_page() {
    echo '<p>Hello, I am Team Kit</p>';
}

function my_custom_submenu_page() {
    echo '<p>Hello, I am Team Info</p>';
}

function my_custom_submenu_page_2() {
    echo '<p>Hello, I am Crew Stats</p>';
}
3
Wyck