WordPress 自定义后台管理菜单的顺序

最近在开发项目时,用到一个Elementor的扩展插件 Element Pack Pro,发现它在WordPress后台添加的菜单位置太靠前了,对用户不是很友好。这篇文教就来通过实例讲解一下WordPress 自定义后台管理菜单的顺序的方法。

之前WordPress大学发布过一个教程《自定义排序WordPress后台管理菜单》,介绍的方法存在一个弊端:如果有新增其他菜单或自定义文章类型,就需要重新修改补充对应的菜单项到代码中。

所以继续找教程,最终在这里发现了可用的方案。我们最终需要的就是将 Element Pack Pro 的菜单往下挪到 设置 的下面,如下图所示。

WordPress 自定义后台管理菜单的顺序 - Custom Admin Menu Order

所用的代码如下,有改进:

/**
 * 激活 'custom_menu_order'钩子然后挂载代码到 'menu_order'
 * https://wordpress.stackexchange.com/questions/276230/how-can-i-control-the-position-in-the-admin-menu-of-items-added-by-plugins#answer-315621
 */
add_filter( 'custom_menu_order', '__return_true' );
add_filter( 'menu_order', 'wpkj_admin_menu_order' );

function wpkj_admin_menu_order( $menu_order ) {
    // 在下面的数组中定义菜单的位置,后面的数字就是位置
    $new_positions = array(

        // 'index.php' => 1,  // 仪表盘
        // 'edit.php' => 2,  // 文章
        // 'upload.php' => 3,  // 媒体
        // 'edit.php?post_type=page' => 4,  // 页面(如果是自定义文章类型,可以参考这个)
        // 'edit-comments.php' => 5  // 评论

        'element_pack_options' => 81, // 插件的顶级菜单网址为 admin.php?page=element_pack_options,选项菜单可以参考这个

    );
    //遍历新位置并移动项目(如果在原始 menu_positions 中找到)
    foreach( $new_positions as $value => $new_index ) {
        if( $current_index = array_search( $value, $menu_order ) ) {
            $out = array_splice($menu_order, $current_index, 1);
            array_splice($menu_order, $new_index, 0, $out);
        }
    }
    return $menu_order;
};

注意看代码的第10行的 $new_positions 数组,根据需要添加你要调整的菜单和位置即可。

默认管理菜单的位置对应的数字如下,可参考来设置你的菜单位置。

    5 - 文章下方
    10 - 媒体下方
    15 - 链接(默认移除了)下方
    20 - 页面下方
    25 - 评论下方
    60 - 对一个分隔符下方
    65 - 插件下方
    70 - 用户下方
    75 - 工具下方
    80 - 设置下方
    100 - 第二个分隔符下方

好了,教程就到这里。

拓展阅读:

来源:

https://www.wpdaxue.com/wordpress-change-admin-menu-position.html

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?