如何在WordPress中添加菜单位置作为管理仪表板菜单

时间:2017-03-06 05:08:19

标签: php wordpress

我在wordpress中有大约5个自定义菜单位置。现在我需要将每个位置作为wordpress管理面板中的主侧栏导航。我尝试过使用add_action方法。这是我的代码片段。

add_action('admin_menu', 'sep_menuexample_create_menu' );
function sep_menuexample_create_menu() {
//create custom top-level menu
add_menu_page( 'My Plugin Settings Page', 'Menu Example Settings','manage_options','navmenu.php', 'sep_menuexample_settings_page',screen_icon('edit'));
}
function sep_menuexample_settings_page(){

}

我怎样才能实现它?

1 个答案:

答案 0 :(得分:1)

这只能用jQuery实现。创建所需的管理菜单和子菜单,并在admin_head中添加jQuery以在所有管理页面中运行。

这是找到管理员菜单锚点并更改其href属性的问题。在此示例中,管理菜单被修改为指向nav-menus.php?action=edit&menu=MENU_ID

add_action( 'admin_menu', function() {
    add_menu_page( 
        'My custom menu Settings', 
        'Menus', 
        'manage_options', 
        'my-menus', 
        function(){ echo 'This does not show up'; },
        null,
        25
    );

    add_submenu_page( 
        'my-menus' , 
        'My custom submenu-1', 
        'Menu 1', 
        'manage_options', 
        'my-menus', // <---- Same as main menu, change to "sub-menu1" to see effect
        function(){}
    );
    add_submenu_page( 
        'my-menus' , 
        'My custom submenu-2', 
        'Menu 2', 
        'manage_options', 
        'sub-menu2', 
        function(){}
    );
});

# See http://stackoverflow.com/questions/5673269/ for <<<HTML usage
add_action( 'admin_head', function (){
    echo <<<HTML
    <script type="text/javascript">
        jQuery(document).ready( function($) {
            topmenu = $('#toplevel_page_my-menus');
            nav_menu1 = 'nav-menus.php?action=edit&menu=1';
            nav_menu2 = 'nav-menus.php?action=edit&menu=2';
            topmenu.find('a[href="admin.php?page=my-menus"]').attr('href',nav_menu1);  
            topmenu.find('a[href="admin.php?page=sub-menu2"]').attr('href',nav_menu2);
        });     
    </script>
HTML;
});