수색…


소개

이 기능은 관리자 패널의 탐색 모음에 항목을 추가하는 것입니다.

통사론

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

매개 변수

매개 변수 세부
$ page_title (문자열) 메뉴를 선택할 때 페이지의 제목 태그에 표시 할 텍스트입니다.
$ menu_title (문자열) 메뉴에 사용할 텍스트입니다.
$ 능력 (문자열)이 메뉴를 사용자에게 표시하는 데 필요한 기능입니다.
$ menu_slug (문자열)이 메뉴를 참조 할 슬러그 이름 (이 메뉴에 대해 고유해야 함).
$ function (callable) (선택 사항)이 페이지의 내용을 출력하기 위해 호출되는 함수.
$ icon_url (문자열) (선택 사항)이 메뉴에 사용될 아이콘에 대한 URL입니다.
$ 위치 (int) (선택 사항) 메뉴 순서에서이 위치가 표시되어야하는 위치입니다.

비고

다음은 기본 위치 목록입니다 ($ position의 경우).

  • 2 - 대시 보드
  • 4 - 세퍼레이터
  • 5 - 게시물
  • 10 - 미디어
  • 15 - 링크
  • 20 - 페이지
  • 25 - 댓글
  • 59 - 분리 기호
  • 60 - 외모
  • 65 - 플러그인
  • 70 - 사용자
  • 75 - 도구
  • 80 - 설정
  • 99 - 세퍼레이터

탐색 모음에 "테마 페이지 제목"항목 추가

암호

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_menu_page 를 사용하여 항목을 navbar에 추가했습니다. 이 페이지의 매개 변수 부분을 확인하여 전달 된 인수에 대해 알아야합니다. 그런 다음 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