WordPress
add_menu_page ()
Ricerca…
introduzione
Questa funzione è di aggiungere un elemento nella barra di navigazione del pannello di amministrazione.
Sintassi
- add_menu_page ($ page_title, $ menu_title, $ capability, $ menu_slug, $ function, $ icon_url, $ position)
Parametri
Parametro | Dettagli |
---|---|
$ PAGE_TITLE | (stringa) Il testo da visualizzare nei tag del titolo della pagina quando il menu è selezionato. |
$ menu_title | (stringa) Il testo da utilizzare per il menu. |
$ capacità | (stringa) La capacità richiesta per questo menu da visualizzare all'utente. |
$ menu_slug | (stringa) Il nome slug per fare riferimento a questo menu (dovrebbe essere univoco per questo menu). |
$ funzione | (richiamabile) (opzionale) La funzione da chiamare per emettere il contenuto per questa pagina. |
$ icon_url | (stringa) (facoltativo) L'URL dell'icona da utilizzare per questo menu. |
$ posizione | (int) (opzionale) La posizione nell'ordine del menu dovrebbe apparire questa. |
Osservazioni
Ecco un elenco delle posizioni predefinite (per $ posizione)
- 2 - Dashboard
- 4 - Separatore
- 5 - Post
- 10 - Media
- 15 - Collegamenti
- 20 - Pagine
- 25 - Commenti
- 59 - Separatore
- 60 - Aspetto
- 65 - Plugin
- 70 - Utenti
- 75 - Strumenti
- 80 - Impostazioni
- 99 - Separatore
Aggiunta dell'elemento "Titolo pagina tema" alla barra di navigazione
Codice
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>';
}
Produzione
Spiegazione
Nel codice, abbiamo creato una funzione chiamata add_the_theme_page
e abbiamo usato add_menu_page
per aggiungere l'elemento alla barra di navigazione. Si prega di controllare la parte dei parametri in questa pagina per conoscere gli argomenti che abbiamo add_the_theme_page
. Quindi abbiamo usato add_action
per eseguire la nostra funzione add_the_theme_page
. Infine, abbiamo creato la funzione page_content
per visualizzare i contenuti nella pagina.
OOP e come caricare script / stili nella pagina del 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();
Ciò che è importante notare in questo esempio è che, quando si utilizza add_menu_page()
, restituisce un hook che può essere utilizzato per indirizzare la nostra pagina esatta e caricare qui Stili e script.
Un errore comune è accodare senza targeting e che riversa script e stili in tutto /wp-admin
.
Usando OOP possiamo memorizzare variabili comuni da utilizzare tra i metodi interni.