WordPress
add_menu_page ()
Zoeken…
Invoering
Met deze functie voegt u een item toe aan de navigatiebalk van het admin-paneel.
Syntaxis
- add_menu_page ($ page_title, $ menu_title, $ mogelijkheid, $ menu_slug, $ functie, $ icon_url, $ positie)
parameters
Parameter | Details |
---|---|
$ PAGE_TITLE | (tekenreeks) De tekst die moet worden weergegeven in de titeltags van de pagina wanneer het menu is geselecteerd. |
$ menu_title | (tekenreeks) De tekst die moet worden gebruikt voor het menu. |
$ vermogen | (tekenreeks) De vereiste capaciteit om dit menu aan de gebruiker te tonen. |
$ menu_slug | (string) De naam van de slak waarnaar dit menu verwijst (moet uniek zijn voor dit menu). |
$ functie | (opvraagbaar) (optioneel) De functie die moet worden aangeroepen om de inhoud voor deze pagina uit te voeren. |
$ icon_url | (string) (optioneel) De URL naar het pictogram dat voor dit menu moet worden gebruikt. |
$ position | (int) (optioneel) De positie in de menuvolgorde waarin deze moet verschijnen. |
Opmerkingen
Hier is een lijst van de standaardposities (voor $ positie)
- 2 - Dashboard
- 4 - Separator
- 5 - Berichten
- 10 - Media
- 15 - Links
- 20 - Pagina's
- 25 - Opmerkingen
- 59 - Separator
- 60 - Uiterlijk
- 65 - Plug-ins
- 70 - Gebruikers
- 75 - Gereedschappen
- 80 - Instellingen
- 99 - Separator
Het item "Titel titelpagina" toevoegen aan de navigatiebalk
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>';
}
uitgang
Uitleg
In de code hebben we een functie met de naam add_the_theme_page
en hebben we add_menu_page
gebruikt om het item aan de add_menu_page
te voegen. Controleer de parameters deel aan deze pagina om te weten over de argumenten die we passeerden in. Vervolgens gebruikten we add_action
onze lopen add_the_theme_page
functie. Ten slotte hebben we de functie page_content
om de inhoud op de pagina weer te geven.
OOP & hoe scripts / stijlen op menupagina te laden
<?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();
Wat belangrijk is om op te merken in dit voorbeeld, is dat wanneer add_menu_page()
, dit een haak retourneert die kan worden gebruikt om onze exacte pagina te targeten en stijlen en scripts daar te laden.
Een veelgemaakte fout is om in de wachtrij te plaatsen zonder te targeten en dat verspreidt scripts en stijlen over /wp-admin
.
Met behulp van OOP kunnen we gemeenschappelijke variabelen opslaan die bij interne methoden kunnen worden gebruikt.