問題描述

我正在開發一個插件,我必須以部分的方式發佈。

問題是,如果頁面中有一個菜單,然後將新插件添加到第二個或另一個子菜單,否則添加一個新菜單,然後將插件添加到第 1 個子菜單。

我的問題:

  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'
);

最佳解決方案

您可以使用 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']是註冊頁面的列表。

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。