[Résolu] Créer un Sous Menu dans un menu d’administration WordPress (Créer un compte)

  • WordPress :5.7
  • Statut : résolu
5 sujets de 1 à 5 (sur un total de 5)
  • Auteur
    Messages
  • #2375419
    Rock4Temps
    Participant
    Maître WordPress
    1108 contributions

    Bonjour,

    Ma configuration WP actuelle

    • Version de PHP/MySQL : 7.4.1/v5.7.24
    • Thème utilisé : OceanWP
    • Extensions en place : Elementor – 3.1.4   WooCommerce – 5.2.0  Ocean Extra – 1.7.4  WooCommerce PDF Invoices & Packing Slips – 2.8.3
    • Nom de l’hébergeur :
    • Adresse du site : Local

    Problème(s) rencontré(s) :  Créer un Sous Menu dans un menu d’administration WordPress

    J’arrive bien à créer un menu dans l’administration de WordPress avec le Hook  admin_menu
    mais le sous menu ne s’affiche pas, voici mon code:

    add_action( 'admin_menu', 'ecwo_menu_items' );

    /* On définit nos éléments de menu*/
    function ecwo_menu_items() {

    // On crée un élément de menu de niveau supérieur: ECWO Settings
    add_menu_page(
    __( 'Easy Custom Woocommerce OceanWP General Settings', 'easy-custom-woocommerce-oceanwp' ), // Page title , Text Domain(pour la traduction)
    __( 'ECWO Settings', 'easy-custom-woocommerce-oceanwp' ), // Menu title, Text Domain(pour la traduction)
    'manage_options', // Capabilities (Capacités)
    'ecwo_settings_page', // Slug
    'ecwo_settings_page_markup', // Display callback (fonction permettant l'affichage du contenu de la page de réglages)
    'dashicons-cart', // Icon
    66 // Priority/position. Just after 'Plugins'
    );

    // On crée un élément de sous menu: General Settings
    // ce sous menu affichera la même page de réglages que le menu parent
    add_submenu_page(
    'ecwo_settings_page', // slug du Menu Parent
    __( 'Easy Custom Woocommerce OceanWP General Settings', 'easy-custom-woocommerce-oceanwp' ), // Titre de la page identique au menu parent
    __( 'General Settings', 'easy-custom-woocommerce-oceanwp' ), // Menu title, Text Domain(pour la traduction)
    'manage_options', // Capabilities (Capacités)
    'ecwo_settings_page', // Slug du menu Parent
    'ecwo_settings_page_markup' // même fonction que le menu parent (fonction permettant l'affichage du contenu de la page de réglages)
    // Priority/position
    );


    }

    #2375421
    mathieu42
    Participant
    Maître WordPress
    2013 contributions

    le souci est au 5e argument de « add_submenu_page », il faut mettre le slug de la page et non le slug du parent.

    https://developer.wordpress.org/reference/functions/add_submenu_page/

    #2375432
    Rock4Temps
    Participant
    Maître WordPress
    1108 contributions

    Merci j’ai rectifié mon étourderie pour le 5ème argument, le sous menu est affiché.
    un autre problème apparait avec un doublon du menu voir photo ci-jointe, et la position du
    sous menu General Settings ?

    Fichiers joints :
    Vous devez être connecté pour voir les fichiers joints.
    #2375434
    mathieu42
    Participant
    Maître WordPress
    2013 contributions

    vous ne pouvez pas avoir un sous-menu avec un titre différent s’il y a seulement 1 élément dans le menu.

    ça fonctionne seulement à partir de 2 éléments, comme cela par exemple :

    function ecwo_menu_items() {

    // On crée un élément de menu de niveau supérieur: ECWO Settings
    add_menu_page(
    "", // Page title , Text Domain(pour la traduction)
    __( 'ECWO Settings', 'easy-custom-woocommerce-oceanwp' ), // Menu title, Text Domain(pour la traduction)
    'manage_options', // Capabilities (Capacités)
    'ecwo_settings_page', // Slug
    'ecwo_settings_page_markup', // Display callback (fonction permettant l'affichage du contenu de la page de réglages)
    'dashicons-cart', // Icon
    66 // Priority/position. Just after 'Plugins'
    );

    // On crée un élément de sous menu: General Settings
    // ce sous menu affichera la même page de réglages que le menu parent
    add_submenu_page(
    'ecwo_settings_page', // slug du Menu Parent
    __( 'Easy Custom Woocommerce OceanWP General Settings', 'easy-custom-woocommerce-oceanwp' ), // Titre de la page identique au menu parent
    __( 'General Settings', 'easy-custom-woocommerce-oceanwp' ), // Menu title, Text Domain(pour la traduction)
    'manage_options', // Capabilities (Capacités)
    'ecwo_settings_page' // Slug du menu Parent
    );

    add_submenu_page(
    'ecwo_settings_page', // slug du Menu Parent
    __( 'menu 2 A', 'easy-custom-woocommerce-oceanwp' ), // Titre de la page identique au menu parent
    __( 'menu 2 B', 'easy-custom-woocommerce-oceanwp' ), // Menu title, Text Domain(pour la traduction)
    'manage_options', // Capabilities (Capacités)
    'ecwo__menu_2', // Slug du menu Parent
    'ecwo_settings_page_menu_2' // même fonction que le menu parent (fonction permettant l'affichage du contenu de la page de réglages)
    // Priority/position
    );

    }

    #2375436
    Rock4Temps
    Participant
    Maître WordPress
    1108 contributions

    Merci  pour votre aide, je marque le sujet comme résolu.

    Bonne soirée

5 sujets de 1 à 5 (sur un total de 5)
  • Vous devez être connecté pour répondre à ce sujet.