Recherche…


Introduction

Cette fonction consiste à ajouter un élément dans la barre de navigation du panneau d'administration.

Syntaxe

  • add_menu_page ($ page_title, $ menu_title, $ capacite, $ menu_slug, $ function, $ icon_url, $ position)

Paramètres

Paramètre Détails
$ page_title (string) Le texte à afficher dans les balises de titre de la page lorsque le menu est sélectionné.
$ menu_title (string) Le texte à utiliser pour le menu.
capacité $ (string) La capacité requise pour que ce menu soit affiché à l'utilisateur.
$ menu_slug (string) Le nom du slug à faire référence à ce menu par (devrait être unique pour ce menu).
fonction $ (callable) (facultatif) Fonction à appeler pour afficher le contenu de cette page.
$ icon_url (chaîne) (facultatif) L'URL de l'icône à utiliser pour ce menu.
position $ (int) (facultatif) La position dans l'ordre du menu devrait apparaître.

Remarques

Voici une liste des positions par défaut (pour la position $)

  • 2 - Tableau de bord
  • 4 - Séparateur
  • 5 - Messages
  • 10 - Médias
  • 15 - Liens
  • 20 - Pages
  • 25 - Commentaires
  • 59 - Séparateur
  • 60 - Apparence
  • 65 - Plugins
  • 70 - Utilisateurs
  • 75 - Outils
  • 80 - Paramètres
  • 99 - Séparateur

Ajout de l'élément "Titre de la page de thème" à la barre de navigation

Code

function add_the_theme_page(){
    add_menu_page('Theme page title', 'Theme menu label', 'manage_options', 'theme-options', 'page_content', 'dashicons-book-alt');
}
add_action('admin_menu', 'add_the_theme_page');
function page_content(){
    echo '<div class="wrap"><h2>Testing</h2></div>';
}

Sortie

entrer la description de l'image ici

Explication

Dans le code, nous avons créé une fonction nommée add_the_theme_page et nous avons utilisé add_menu_page pour ajouter l'élément à la barre de navigation. Veuillez vérifier la partie paramètres de cette page pour connaître les arguments que nous avons transmis. Nous avons ensuite utilisé add_action pour exécuter notre fonction add_the_theme_page . Enfin, nous avons créé la fonction page_content pour afficher le contenu de la page.

POO et comment charger des scripts / styles sur la page de menu

<?php
/*
 *  Plugin Name: Custom Admin Menu
 */

class SO_WP_Menu {

    private $plugin_url;
    
    public function __construct() {
        $this->plugin_url = plugins_url( '/', __FILE__ );
        add_action( 'plugins_loaded', array( $this, 'init' ) );
    }

    public function init() {
        add_action( 'admin_menu', array( $this, 'add_menu' ) );
    }

    public function add_menu() {
        $hook = add_menu_page(
            'My Menu',                 // Title, html meta tag
            '<span style="color:#e57300;">My Menu</span>', // Menu title, hardcoded style
            'edit_pages',              // capability
            'dummy-page-slug',         // URL
            array( $this, 'content' ), // output
            null,                      // icon, uses default
            1                          // position, showing on top of all others
        );
        add_action( "admin_print_scripts-$hook", array( $this, 'scripts' ) );
        add_action( "admin_print_styles-$hook", array( $this, 'styles' ) );
    }

    public function content() {
        ?>
            <div id="icon-post" class="icon32"></div>
            <h2>Dummy Page</h2>
            <p> Lorem ipsum</p>
        <?php
    }

    # Printing directly, could be wp_enqueue_script
    public function scripts() {
        ?><script>alert('My page');</script><?php
    }

    # Enqueing from a CSS file on plugin directory
    public function styles() {
        wp_enqueue_style( 'my-menu', $this->plugin_url . 'my-menu.css' );
    }
}

new SO_WP_Menu();

Ce qui est important de noter dans cet exemple, c'est que, lorsque vous utilisez add_menu_page() , il retourne un hook qui peut être utilisé pour cibler notre page exacte et y charger les styles et les scripts.
Une erreur courante consiste à mettre en file d'attente sans cibler et à renverser les scripts et les styles sur /wp-admin .
En utilisant la POO, nous pouvons stocker des variables communes à utiliser parmi les méthodes internes.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow