WordPress
add_menu_page ()
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
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.