ตรวจสอบว่า add_menu_page มีอยู่หรือไม่


11

ฉันกำลังทำงานกับปลั๊กอินที่ฉันต้องปล่อยในบางส่วน

ปัญหาคือถ้ามีเมนูในหน้าให้เพิ่มปลั๊กอินใหม่ไปยังเมนูย่อยที่ 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'
);

คำตอบ:


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;
Nathan Hangen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.