使用Add_SubMenu_Page添加多个子菜单

时间:2018-04-21 作者:Shirantha

我需要在单亲管理菜单下添加多个子菜单。我可以使用以下语法添加子菜单。

function register_my_sub_admin() {
    add_submenu_page( \'/pluginname/includes/admin-menu.php\',
        \'title\',
        \'menu_title\',
        \'manage_options\',
        \'/pluginname/includes/submenu.php\',
        \'\',
        plugins_url( \'pluginname/images/icon.png\' )
    );
}

add_action( \'admin_menu\', \'register_my_sub_admin\' );
因为我有10多个子菜单要注册,所以我必须根据需要复制上面的代码。

所以我想,我是否可以使用一些foreach循环或其他数组方法来执行一个代码块,并通过一个操作挂钩/函数注册所有子菜单页。

下面这样的事情会发生吗?

$sub_menu       = array();
    $sub_menu[\'page_title\'] = array(\'page1\',\'page2\');
    $sub_menu[\'menu_title\'] = array(\'title1\',\'title2\');
    $sub_menu[\'capability\'] =\'manage_options\';
    $sub_menu[\'slug\']   = array(\'wp-admin.php\',\'wp-login.php\');
    $sub_menu[\'function\'] =\'\';

    foreach ($sub_menu as $key => $value ){
        add_submenu_page( \'/pluginname/includes/admin-menu.php\',
            $key,$key,$key,$key,$key,
            plugins_url( \'pluginname/images/icon.png\' )
        );
    }

1 个回复
最合适的回答,由SO网友:mmm 整理而成

循环几乎总是避免复制粘贴代码的好方法。

您只需使用如下数据数组:

$submenus = [
    [
        "page_title" => "page1",
        "menu_title" => "title1",
        "slug" => "wp-admin.php",
    ],
    [
        "page_title" => "page2",
        "menu_title" => "title2",
        "slug" => "wp-login.php",
    ],
];


foreach ($submenus as $value) {

    add_submenu_page(
        \'/pluginname/includes/admin-menu.php\',
        $value["page_title"],
        $value["menu_title"],
        \'manage_options\',
        $value["slug"],
        \'\',
        plugins_url( \'pluginname/images/icon.png\' )
    );


}

结束

相关推荐