Move admin menu at the end

时间:2013-04-06 作者:Ghinnersmee

我在WPMU中为我的用户安装了一个插件,我想让它出现在管理菜单的末尾。。。。

我试过了,但菜单始终没有出现在末尾:

function custom_menu_order($menu_ord) {  
if (!$menu_ord) return true;  

return array(  
    \'index.php\', // Dashboard  
    \'edit.php\', // Posts 
    \'upload.php\', // Media
    \'options-general.php\', // Settings  
 => \'admin.php?page=support\', // my plugin

);
}  
add_filter(\'custom_menu_order\', \'custom_menu_order\'); // Activate custom_menu_order  
add_filter(\'menu_order\', \'custom_menu_order\');
我的插件菜单是“admin.php?page=support”

2 个回复
SO网友:brasofilo

全局变量$menu 可以操纵。这里,我们将页面菜单项移到末尾:

moved pages to the end of the menu

也许有一种更简单的方法来进行递归数组搜索,我从PHP手册中抓取了一个示例。必须在$menu var,启用调试行对其进行强制检查。

add_action( \'admin_menu\', \'move_menu_item_wpse_94808\', 999 );

function move_menu_item_wpse_94808() 
{
    global $menu;

    // Inspect the $menu variable:
    // echo \'<pre>\' . print_r( $menu, true ) . \'</pre>\';
    // die();

    // Pinpoint menu item
    $move = recursive_array_search_php_91365( \'edit.php?post_type=page\', $menu );

    // Validate
    if( !$move )
        return;

    // Store menu item
    $new = $menu[ $move ];

    // Remove menu item, and add previously stored at the end
    unset( $menu[ $move ] );
    $menu[] = $new;
}

// http://www.php.net/manual/en/function.array-search.php#91365
function recursive_array_search_php_91365( $needle, $haystack ) 
{
    foreach( $haystack as $key => $value ) 
    {
        $current_key = $key;
        if( 
            $needle === $value 
            OR ( 
                is_array( $value )
                && recursive_array_search_php_91365( $needle, $value ) !== false 
            )
        ) 
        {
            return $current_key;
        }
    }
    return false;
}

SO网友:Simon Blackbourn

您正在使用add_menu_page?
如果是这样:其最后一个参数是菜单位置,将其设置为一个巨大的数字应确保它始终位于末尾。

结束