add_menu_pageが存在するかどうかを確認します


11

私は部分的にリリースしなければならないプラグインに取り組んでいます。

問題は、ページにメニューがある場合、新しいプラグインを2番目または次のサブメニューに追加するか、新しいメニューを追加してから、プラグインを最初のサブメニューに追加することです。

私の質問:

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

回答:


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
FYI、あなたは自分自身でグローバルにアクセスすることができます: global $admin_page_hooks;
ネイサンHangen
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.