サーチ…


前書き

この機能は、管理パネルのナビゲーションバーにアイテムを追加することです。

構文

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

パラメーター

パラメータ詳細
$ page_title (文字列)メニューが選択されたときにページのタイトルタグに表示されるテキスト。
$ menu_title (文字列)メニューに使用されるテキスト。
$能力 (文字列)このメニューをユーザーに表示するために必要な機能。
$ menu_slug (文字列)このメニューを参照するスラッグ名(このメニューで一意である必要があります)。
$関数 (callable)(オプション)このページのコンテンツを出力するために呼び出される関数。
$ icon_url (文字列)(オプション)このメニューに使用されるアイコンのURL。
$ポジション (int)(オプション)このメニューを表示する順序。

備考

デフォルトの位置のリスト($ positionの場合)

  • 2 - ダッシュボード
  • 4 - セパレータ
  • 5 - 投稿
  • 10 - メディア
  • 15 - リンク
  • 20 - ページ
  • 25 - コメント
  • 59 - セパレータ
  • 60 - 外観
  • 65 - プラグイン
  • 70 - ユーザー
  • 75 - ツール
  • 80 - 設定
  • 99 - セパレータ

ナビゲーションバーに "Theme page title"項目を追加する

コード

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

出力

ここに画像の説明を入力

説明

コードでは、 add_the_theme_pageという名前の関数を作成し、 add_the_theme_pageを使用してアイテムをadd_menu_pageに追加しました。私たちが渡された引数を知って、このページのパラメータの一部を確認してください。その後、我々は使用add_action私たち実行するadd_the_theme_page機能を。最後に、 page_content関数を作成して、ページにコンテンツを表示しました。

OOP&メニューページでスクリプトやスタイルを読み込む方法

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

この例では、 add_menu_page()使用すると、正確なページをターゲットにしてスタイルとスクリプトをロードするために使用できるフックが返される点に注意することが重要です。
一般的な間違いは、ターゲティングせずにエンキューすることです。これは/wp-admin全体のスクリプトとスタイルを流出させます。
OOPを使用して、内部メソッド間で使用される共通変数を格納できます。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow