如何调整WordPress侧边栏plugins的排列顺序
WordPress自定义插件移动到后台侧边栏顶部实现方法
WordPress后台侧边栏菜单的排列顺序完全由菜单注册时传入的position参数控制,数值越小排列位置越靠上,你的自定义插件显示在最底部,是因为注册菜单时未指定该参数、或传入的参数值过大导致的。
方法一:修改插件自身菜单注册参数(推荐)
注册自定义顶级菜单使用add_menu_page()函数时,最后一个传入的参数就是排序权重值,你可以直接修改插件内对应代码的该参数,把值调小即可。
WordPress核心默认菜单的position对应值参考:
- 2:仪表盘
- 4:第一个分隔符
- 5:文章
- 10:媒体
- 20:页面
- 25:评论
- 60:外观
- 65:插件
- 70:用户
- 75:工具
- 80:设置
- 99:底部分隔符
如果要把自定义插件放在最靠近顶部的位置(仪表盘下方),直接把position值设为3即可,代码示例:
add_action( 'admin_menu', 'register_my_custom_plugin_menu' ); function register_my_custom_plugin_menu() { add_menu_page( '自定义插件设置页', '我的自定义插件', 'manage_options', 'my-custom-plugin-slug', 'render_custom_plugin_page', 'dashicons-star-filled', 3 // 排序权重,数值越小越靠上 ); }
注意:如果设置的position值和现有菜单重复,可能出现菜单冲突覆盖,你也可以用小数值(比如2.3)避开已被占用的权重值,WordPress支持小数格式的position参数。
如果你的插件是作为子菜单挂在现有顶级菜单下,修改add_submenu_page()函数对应的position参数即可调整子菜单内的排序。
方法二:全局钩子调整顺序(无需修改原插件代码)
如果你不想改动自定义插件的源码,可以通过高优先级的admin_menu钩子,在所有菜单注册完成后全局调整菜单位置,把下面的代码放到当前主题的functions.php文件、或者站点的MU插件中即可生效:
add_action( 'admin_menu', 'move_custom_plugin_to_top', 999 ); function move_custom_plugin_to_top() { global $menu; // 替换成你自己插件的菜单slug $plugin_menu_slug = 'my-custom-plugin-slug'; $current_index = false; // 遍历找到当前插件菜单的位置 foreach ( $menu as $index => $menu_item ) { if ( $menu_item[2] === $plugin_menu_slug ) { $current_index = $index; break; } } if ( $current_index === false ) return; // 目标位置,3为仪表盘下方 $target_index = 3; // 取出原菜单项,移除原位置条目后插入到目标位置 $plugin_item = $menu[$current_index]; unset( $menu[$current_index] ); $menu = array_slice( $menu, 0, $target_index, true ) + [ $target_index => $plugin_item ] + array_slice( $menu, $target_index, null, true ); }
内容的提问来源于stack exchange,提问作者Ville
相关产品推荐
相关产品推荐

