在WordPress中添加管理菜单分隔符

时间:2013-10-16 23:03:44

标签: php wordpress wordpress-theming

我正在尝试创建一个管理菜单分隔符,允许您将它们放入代码中。这是功能:

function add_admin_menu_separator($position) {
    global $menu;
    $index = 0;
    foreach($menu as $offset => $section) {
        if (substr($section[2],0,9)=='separator')
        $index++;
        if ($offset>=$position) {
            $menu[$position] = array('','read',"separator{$index}",'','wp-menu-separator');
            break;
        }
    }
    ksort( $menu );
}

添加操作位在

之下
add_action('admin_init','admin_menu_separator');

function admin_menu_separator() {add_admin_menu_separator(220);}

它可以正常工作,但在重新排列菜单时会在WordPress中产生以下错误:

  

警告:在第174行的/home/user/public_html/wp-creation.com/wp-content/themes/liquid_theme_0.4_licensed/functions.php中为foreach()提供的参数无效

     

警告:ksort()期望参数1为数组,在第182行的/home/user/public_html/wp-creation.com/wp-content/themes/liquid_theme_0.4_licensed/functions.php中给出为null

2 个答案:

答案 0 :(得分:5)

你应该挂钩admin_menu

add_action('admin_menu','admin_menu_separator');

并使用低于220的内容。我系统中最大的offset99

检查this very fine class以处理管理员菜单 它出现在这个WPSE问题中:Add a Separator to the Admin Menu?

答案 1 :(得分:0)

您可以简单地将其添加到functions.php

add_action('admin_menu', function () {   
  global $menu;
  $menu[49] = ['', 'read', '', '', 'wp-menu-separator'];
});

在49是分隔符位置的地方,您必须记住,分隔符位置可以替换具有相同位置的菜单元素。