我需要在单亲管理菜单下添加多个子菜单。我可以使用以下语法添加子菜单。
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\' )
);
}
最合适的回答,由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\' )
);
}