是否可以将3级菜单项添加到管理菜单?

时间:2017-03-15 作者:subhashuyadav

我需要在管理菜单栏的子菜单中添加一个菜单。在wordpress中可以这样做吗?

例如:

A
|
-> B
   |
   -> C
或者是否有任何解决方法或黑客来实现这一点?

2 个回复
SO网友:Paul \'Sparrow Hawk\' Biron

虽然主管理菜单(即屏幕左侧的菜单)只能有2个深度(A>B),但toolbar 可以任意深。

我不知道使用工具栏是否适合您,但如果是这样的话,您可以执行以下操作:

add_action (\'wp_before_admin_bar_render\', \'wpse_admin_toolbar_test\') ;

function
admin_toolbar ()
{
    global $wp_admin_bar ;

    $args = array (
        \'id\' => \'wpse_admin_toolbar_test\',
        \'title\' => \'WPSE Admin Toolbar Test\',
        ) ;
    $node = $wp_admin_bar->add_node ($args) ;

    for ($i = 0 ; $i < 4 ; $i++) {
        $args = array (
            \'id\' => "wpse_admin_toolbar_test_item_{$i}",
            \'parent\' => \'wpse_admin_toolbar_test\',
            \'title\' => "Item $i",
            ) ;
        $wp_admin_bar->add_node ($args) ;

        for ($y = 0 ; $y < 3 ; $y++) {
            $args = array (
                \'id\' => "wpse_admin_toolbar_test_item_{$i}_subitem_{$y}",
                \'parent\' => "wpse_admin_toolbar_test_item_{$i}",
                \'title\' => "Sub Item $y",
                ) ;
            $wp_admin_bar->add_node ($args) ;

            for ($z = 0 ; $z < 2 ; $z++) {
                $args = array (
                    \'id\' => "wpse_admin_toolbar_test_item_{$i}_subitem_{$y}_subitem_{$z}",
                    \'parent\' => "wpse_admin_toolbar_test_item_{$i}_subitem_{$y}",
                    \'title\' => "Sub-Sub Item $z",
                    // in the real-world, this URL would be to something that
                    // would perform the action for this node
                    \'href\' => admin_url (),
                    ) ;
                $wp_admin_bar->add_node ($args) ;
                }
            }
        }

    return ;
}
以上将产生以下结果:enter image description here

SO网友:Savan Dholu

否,无法在管理面板中创建第三级菜单。如果你看一下add_submenu_page, 您需要提到父段塞名称。对于eg:

add_menu_page ( \'Test Menu\', \'Test Menu\', \'read\', \'testmainmenu\', \'\', \'\' );
add_submenu_page ( \'testmainmenu\', \'Test Menu\', \'Child1\', \'read\', \'child1\', \'\');
的第一个参数add_submenu_page 将是父段塞名称。所以你可能认为我们可以写child1 作为父段塞名称创建第三级。例如:

add_submenu_page ( \'child1\', \'Test Menu\', \'Child2\', \'read\', \'child2\', \'\');
这不管用所以就这样吧Submenu reference

相关推荐