检查add_menu_page是否存在


11

我正在开发必须分批发布的插件。

问题是,如果页面中有菜单,则将新插件添加到第二个或下一个子菜单,否则添加新菜单,然后将插件添加到第一个子菜单。

我的问题:

  1. 如何检查菜单是否存在?
  2. 如果我正在编写一个可重用的函数,那么它将与每个插件一起使用,这将导致冲突选项。
  3. 我不知道插件发布的顺序。
add_menu_page(
    'Page Title',
    'Top Menu Title',
    'manage_options',
    'my_unique_slug',
    'my_magic_function'
);
add_submenu_page(
    'my_unique_slug',
    'page title',
    'submenu title',
    'manage_options',
    'my_submenu_slug',
    'my_magic_function_of_submenu'
);

Answers:


18

您可以使用的第四个参数add_menu_page()my_unique_slug,以检查是否存在页面:

if ( empty ( $GLOBALS['admin_page_hooks']['my_unique_slug'] ) )
    add_menu_page(
        'Page Title',
        'Top Menu Title',
        'manage_options',
        'my_unique_slug',
        'my_magic_function'
    );

$GLOBALS['admin_page_hooks'] 是已注册页面的列表。


1
仅供参考,您可以自己访问全球: global $admin_page_hooks;
Nathan Hangen
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.