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

voer hier de afbeeldingsbeschrijving in

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.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow