WordPress中文开发手册

WordPress插件开发 — 子菜单

添加子菜单

要添加新的子菜单到WordPress管理,请使用add_submenu_page()函数。

<?php
add_submenu_page(
    string $parent_slug,
    string $page_title,
    string $menu_title,
    string $capability,
    string $menu_slug,
    callable $function = ''
);

示例

假设我们要添加子菜单“WPOrg选项”到“工具”顶级菜单。

第一步将创建一个将输出HTML的函数。 在此功能中,我们将执行必要的安全检查,并使用Settings API呈现我们注册的选项。

注意:我们建议使用一个包裹类型的<div>包装你的HTML。

<?php
function wporg_options_page_html()
{
    // check user capabilities
    if (!current_user_can('manage_options')) {
        return;
    }
    ?>
    <div class="wrap">
        <h1><?= esc_html(get_admin_page_title()); ?></h1>
        <form action="options.php" method="post">
            <?php
            // output security fields for the registered setting "wporg_options"
            settings_fields('wporg_options');
            // output setting sections and their fields
            // (sections are registered for "wporg", each field is registered to a specific section)
            do_settings_sections('wporg');
            // output save settings button
            submit_button('Save Settings');
            ?>
        </form>
    </div>
    <?php
}

第二步将注册我们的WPOrg选项子菜单。 注册需要在admin_menu操作钩子中进行。

<?php
function wporg_options_page()
{
    add_submenu_page(
        'tools.php',
        'WPOrg Options',
        'WPOrg Options',
        'manage_options',
        'wporg',
        'wporg_options_page_html'
    );
}
add_action('admin_menu', 'wporg_options_page');

有关参数列表,请参阅引用中的add_submenu_page()。

##自定义子菜单

如果我们有帮助函数来定义WordPress内置顶级菜单的$ parent_slug,并保存我们,通过源代码手动搜索,那不是很好吗?

以下是父lug a及其助手功能列表:

  • add_dashboard_page() – index.php
  • add_posts_page() – edit.php
  • add_media_page() – upload.php
  • add_pages_page() – edit.php?post_type=page
  • add_comments_page() – edit-comments.php
  • add_theme_page() – themes.php
  • add_plugins_page() – plugins.php
  • add_users_page() – users.php
  • add_management_page() – tools.php
  • add_options_page() – options-general.php
  • add_options_page() – settings.php
  • add_links_page() – link-manager.php – requires a plugin since WP 3.5+
  • Custom Post Type – edit.php?post_type=wporg_post_type
  • Network Admin – settings.php

删除子菜单

删除子菜单的过程与删除顶级菜单完全相同。

Tags