web-dev-qa-db-ja.com

Add_menu_pageが存在するかどうかを確認してください

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

問題は、ページにメニューがある場合は、新しいプラグインを2番目または次のサブメニューに追加するか、新しいメニューを追加してからそのプラグインを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'
);
11
Kaushik Kishore

ページが存在するかどうかを確認するには、add_menu_page()の4番目のパラメータ、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']は登録ページのリストです。

16
fuxia