web-dev-qa-db-ja.com

ダッシュメニューとサブメニューを持つ管理パネル専用のWordPressプラグインの作成

私はクライアントがフレンドリーなインターフェースで助けや他のリソースのために使うことを可能にするWordPressプラグインを作成しようとしています。メインのダッシュボードメニューと、その上にHTMLコンテンツを含むことができるサブメニューを持つWordPressプラグインの作成に関するガイダンスがあれば、それは望ましいでしょう。私はWordPress開発の初心者なので、WP Codexを理解するのは難しいと思いました。

snapshot

これはプラグインコードです:

/** add menu. */
add_action( 'admin_menu', 'my_plugin_menu', 'my_magic_function' );
add_submenu_page( 'my_plugin_menu', 'Page title', 'Sub-menu title', 'manage_options', 'my-submenu-handle', 'my_magic_function');


function my_plugin_menu() {
        add_options_page( 'My Plugin Options', 'My Plugin', 'manage_options', 'my-unique-identifier', 'my_plugin_options' );
}

function my_plugin_menu() {
        add_options_page( 'Submenu', 'My Plugin', 'manage_options', 'my-submenu-handle', 'my_plugin_options' );
}

/** html. */
function my_plugin_options() {
        if ( !current_user_can( 'manage_options' ) )  {
                wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
        }
        echo '<div class="wrap">';
        echo '<p>Main page</p>';
        echo '</div>';
}

function my_plugin_options() {
        if ( !current_user_can( 'manage_options' ) )  {
                wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
        }
        echo '<div class="wrap">';
        echo '<p>submenu page</p>';
        echo '</div>';
}
2
user35044

これは、正しいコードを使い始めるための簡単な例です。これはadd_menu_pageを使ってメインメニュー項目を作成し、それからadd_submenu_pageを使ってサブメニューをアタッチします。どちらも出力に対して異なる関数を呼び出します。

add_submenu_page関数は$menu_slugadd_menu_pageであるcustomteamを使用して親メニューに結びついていることに注意してください。

add_action( 'admin_menu', 'register_my_custom_menu_page' );
add_action( 'admin_menu', 'register_my_custom_submenu_page' );

function register_my_custom_menu_page(){
    add_menu_page( 'Team Kit', 'Team Kit', 'manage_options', 'customteam', 'my_custom_menu_page'); 
}

function register_my_custom_submenu_page() {
    add_submenu_page( 'customteam', 'Team info', 'Team info', 'manage_options', 'my-custom-submenu-page', 'my_custom_submenu_page' ); 
    add_submenu_page( 'customteam', 'Crew Stats', 'Crew Stats', 'manage_options', 'my-custom-submenu-page_2', 'my_custom_submenu_page_2' );
    //add_submenu_page_3 ... and so on
}

function my_custom_menu_page() {
    echo '<p>Hello, I am Team Kit</p>';
}

function my_custom_submenu_page() {
    echo '<p>Hello, I am Team Info</p>';
}

function my_custom_submenu_page_2() {
    echo '<p>Hello, I am Crew Stats</p>';
}
3
Wyck