返回上一级
WordPress 插件开发 关于 get_current_screen()->id 不一致的问题
今天遇到一个神奇的BUG,
wp_add_dashboard_widget() 和 add_meta_box() 生成的元框相互对不上。
经排查发现 do_meta_boxes() 有这么一段
1if ( empty( $screen ) ) {
2 $screen = get_current_screen();
3} elseif ( is_string( $screen ) ) {
4 $screen = convert_to_screen( $screen );
5}
会发现,经过了 convert_to_screen() 函数后输出的id不是一样的
1echo get_current_screen()->id;
2$screen = convert_to_screen( get_current_screen()->id );
3echo '<br>'. $screen->id;
问题就在 add_action(‘admin_menu’,’’) 里
主菜单的侧边栏名称用了中文,换回英文就好了
1<?php
2add_action('admin_menu', function () {
3 $krjojo_tool_menu = add_menu_page(
4 '手里有只毛毛虫工具箱', // 页面内标题
5 'KRJtool', // 侧边栏名称 <---- 就是这一行
6 'manage_options', // 菜单所需的功能
7 'krjojo_tool_setting_slug', // id (slug)
8 'krjojo_tool_setting_html', // 页面的内容
9 plugin_dir_url(__FILE__) . 'images/icon.svg', // 图标
10 20 // 菜单顺序中的位置
11 );
12});