Periksa apakah add_menu_page ada atau tidak

11

Saya sedang mengerjakan plugin yang harus saya rilis di beberapa bagian.

Masalahnya adalah, jika ada menu di halaman kemudian tambahkan plugin baru ke submenu ke-2 atau berikutnya tambahkan menu baru dan kemudian tambahkan plugin ke submenu ke-1.

Pertanyaan saya:

  1. Bagaimana cara mengecek apakah ada menu?
  2. Jika saya sedang mengkode fungsi yang dapat digunakan kembali, itu akan pergi dengan setiap plugin maka yang menyebabkan opsi konflik.
  3. Saya tidak tahu urutan rilis plugin.
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'
);
Kaushik Kishore
sumber

Jawaban:

18

Anda dapat menggunakan parameter keempat add_menu_page(), the my_unique_slug, untuk memeriksa apakah halaman itu ada:

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'] adalah daftar halaman yang terdaftar.

fuxia
sumber
1
FYI, Anda dapat mengakses global sendiri: global $admin_page_hooks;
Nathan Hangen