Sök…


Introduktion

Den här funktionen är att lägga till ett objekt i adminpanelens nav-fält.

Syntax

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

parametrar

Parameter detaljer
$ PAGE_TITLE (sträng) Texten som ska visas i sidatitelns taggar när menyn är vald.
$ menu_title (sträng) Texten som ska användas för menyn.
$ kapacitet (sträng) Funktionen som krävs för att den här menyn ska visas för användaren.
$ menu_slug (sträng) Slug-namnet för att hänvisa till den här menyn av (borde vara unikt för den här menyn).
$ funktion (kallbar) (valfritt) Funktionen som ska anropas för att mata ut innehållet på denna sida.
$ icon_url (sträng) (valfritt) URL till ikonen som ska användas för den här menyn.
$ läge (int) (valfritt) Positionen i menyordningen som denna bör visas.

Anmärkningar

Här är en lista över standardpositioner (för $ position)

  • 2 - Kontrollpanelen
  • 4 - Separator
  • 5 - Inlägg
  • 10 - Media
  • 15 - Länkar
  • 20 - Sidor
  • 25 - Kommentarer
  • 59 - Separator
  • 60 - Utseende
  • 65 - Plugins
  • 70 - Användare
  • 75 - Verktyg
  • 80 - Inställningar
  • 99 - Separator

Lägga till objektet "Temasida-titel" i navfältet

Koda

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>';
}

Produktion

ange bildbeskrivning här

Förklaring

I koden skapade vi en funktion med namnet add_the_theme_page och vi använde add_menu_page att lägga till objektet i naveln. Kontrollera parametrarna på denna sida för att veta om argumenten vi skickade in. Sedan använde vi add_action att köra vår add_the_theme_page funktion. Slutligen skapade vi funktionen page_content att visa innehållet på sidan.

OOP & hur man laddar skript / stilar på menysidan

<?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();

Vad som är viktigt att notera i det här exemplet är att när du använder add_menu_page() returnerar det en krok som kan användas för att rikta in vår exakta sida och ladda format och skript där.
Ett vanligt misstag är att förlägga utan att rikta in sig och att spill över skript och stilar över hela /wp-admin .
Med OOP kan vi lagra vanliga variabler som ska användas bland interna metoder.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow