วิธีลบรายการเมนูผู้ดูแลระบบ WordPress โดยทางโปรแกรมโดยไม่ต้องใช้ปลั๊กอิน

เผยแพร่แล้ว: 2020-01-20

วิธีลบรายการเมนูผู้ดูแลระบบ WordPress โดยทางโปรแกรม เมนูแดชบอร์ดของ WordPress เป็นวิธีที่มีประโยชน์มากในการเข้าถึงส่วนต่างๆ ของแดชบอร์ดผู้ดูแลระบบ แต่บางครั้งอาจสร้างความรำคาญหรือไม่ต้องการได้ โดยเฉพาะอย่างยิ่ง เมื่อคุณใช้ WordPress เป็นระบบจัดการเนื้อหาสำหรับการสร้างเว็บไซต์ลูกค้าแทนที่จะใช้บล็อก คุณต้องลบรายการเมนูผู้ดูแลระบบ WordPress ที่ไม่จำเป็น

หนึ่งในวิธีที่ง่ายที่สุดในการลบรายการเมนูผู้ดูแลระบบ WordPress คือการใช้ปลั๊กอินที่ให้บริการฟรีซึ่งสามารถซ่อนรายการเมนูผู้ดูแลระบบตามบทบาทของผู้ใช้หรือตามเงื่อนไข

เมื่อไม่ลบรายการเมนูผู้ดูแลระบบ WordPress โดยใช้ Plugin

ข้อเสียของการใช้ปลั๊กอินเพื่อลบรายการเมนูผู้ดูแลระบบ WordPress อาจเป็นการพึ่งพานักพัฒนาปลั๊กอินบุคคลที่สามมากเกินไปสำหรับการอัปเดตที่สอดคล้องกัน

ความเสี่ยงของปลั๊กอินของบุคคลที่สาม

ในกรณีนี้ เมื่อคุณต้องการควบคุมว่าจะให้เมนูใดแสดงในแดชบอร์ด WordPress โดยไม่ต้องใช้ปลั๊กอิน บทช่วยสอนนี้เป็นแนวทางที่ดีที่สุดสำหรับคุณ

อัพเดทอย่างต่อเนื่อง

อีกเหตุผลหนึ่งในการลบรายการเมนูผู้ดูแลระบบ WordPress โดยทางโปรแกรมคือการอัปเดตอย่างต่อเนื่องที่คุณมีในปลั๊กอิน WordPress ทั้งหมดที่คุณติดตั้ง

การอัปเดตเหล่านี้มีความสำคัญเนื่องจากช่วยปรับปรุงประสบการณ์ผู้ใช้ ประสิทธิภาพ และความปลอดภัย แต่อาจยุ่งยากเกินไป โดยเฉพาะอย่างยิ่งเมื่อคุณจัดการกับเว็บไซต์ของลูกค้าจำนวนมาก

เมนูผู้ดูแลระบบปลั๊กอินหลายตัว

เมื่อคุณมีปลั๊กอินจำนวนมากติดตั้งอยู่บนไซต์ของคุณ ส่วนใหญ่จะมาพร้อมกับเมนูผู้ดูแลระบบ และคุณอาจต้องการลบเมนูออกเนื่องจากคุณไม่ได้ใช้เมนูผู้ดูแลระบบตลอดเวลา

ในบทความนี้ ผมจะอธิบายวิธีลบรายการเมนู WordPress โดยไม่ต้องใช้ปลั๊กอิน เพื่อให้คุณใช้งานสิ่งนี้ในไซต์ WordPress ของคุณได้ คุณต้องมีประสบการณ์เพียงเล็กน้อยในการแก้ไขไซต์ WordPress โดยเฉพาะการเพิ่มข้อมูลโค้ดลงในไฟล์ธีม functions.php

ลบรายการเมนูผู้ดูแลระบบ WordPress โดยทางโปรแกรม

ฉันชอบเริ่มต้นด้วยการสรุปสั้นๆ เนื่องจากจะช่วยให้ผู้อ่านมองหาวิธีแก้ปัญหาอย่างรวดเร็วในคำแนะนำทีละขั้นตอนได้ง่ายขึ้น ต่อไปนี้คือขั้นตอนที่คุณควรดำเนินการเพื่อลบรายการเมนูผู้ดูแลระบบ WordPress

  1. ลงชื่อเข้าใช้ไซต์ WordPress ของคุณและระบุรายการเมนูผู้ดูแลระบบที่ คุณต้องการลบ
  2. สร้าง action hook ที่เกี่ยวข้องกับเหตุการณ์ admin_menu ด้วย ฟังก์ชันเรียกกลับ ที่มีตรรกะในการลบเมนูผู้ดูแลระบบ WordPress ออกจากแดชบอร์ดของคุณ
  3. ฟังก์ชันเรียกกลับควรใช้ฟังก์ชัน remove_menu_page หรือ remove_submenu_page() ของ WordPress เพื่อลบรายการเมนูผู้ดูแลระบบที่เป็นเป้าหมายแต่ละรายการ ตัวอย่างเช่น คุณสามารถลบเมนูวิดเจ็ตออกจากเมนูธีมโดยใช้รหัสนี้ remove_submenu_page( 'themes.php', 'widgets.php'); หรือลบเมนูหลักของแดชบอร์ดด้วยรหัสนี้ – remove_menu_page('index.php');
  4. หรือคุณสามารถใช้ฟังก์ชัน unset() php และเข้าถึงค่าของอาร์เรย์เมนูย่อยส่วนกลางเพื่อลบรายการเมนูผู้ดูแลระบบ WordPress ที่เป็นเป้าหมายแต่ละรายการ
  5. เพิ่มข้อมูลโค้ดนี้ในธีม functions.php และอัปเดตการเปลี่ยนแปลง การดำเนินการนี้จะลบรายการเมนูผู้ดูแลระบบ WordPress ได้สำเร็จโดยไม่ต้องใช้ปลั๊กอิน
  6. คุณยังสามารถเพิ่มโค้ดนี้ไปยังฟังก์ชันในปลั๊กอินที่คุณกำหนดเองได้ และโค้ดนี้จะทำงานเหมือนกับโค้ดในธีม functions.php

วิธีลบเมนูผู้ดูแลระบบ WordPress โดยไม่ต้องใช้ปลั๊กอิน

ต่อไปนี้เป็นวิธีการทีละขั้นตอนโดยละเอียดในการลบรายการเมนูผู้ดูแลระบบ WordPress โดยการเพิ่มโค้ดแทนที่จะใช้ปลั๊กอินอื่น

ระบุรายการเมนูผู้ดูแลระบบ Slug

ลงชื่อเข้าใช้แดชบอร์ด WordPress และตรวจสอบรายการเมนูผู้ดูแลระบบที่คุณต้องการลบ ดังที่คุณเห็นในตัวอย่างนี้ เมนูแดชบอร์ดหลักมี slug index.php

ทากนี้มีความสำคัญเนื่องจากเป็นหนึ่งในพารามิเตอร์ที่คุณเพิ่มในฟังก์ชัน remove_submenu_page() ตามที่ฉันจะอธิบายในไม่ช้า

ลบเมนูผู้ดูแลระบบ wordpress

ทำความเข้าใจวิธีลบหน้าและลบฟังก์ชั่นหน้าเมนูย่อย

ลบฟังก์ชั่นหน้า

ฟังก์ชัน remove_menu_page มาพร้อมกับพารามิเตอร์เพียงตัวเดียวที่เป็นกระสุนของเพจ และจะลบเมนูผู้ดูแลระบบระดับบนสุดออก พารามิเตอร์เป็นสตริงเนื่องจากเป็นกระสุนของหน้าที่เห็นได้ชัดว่าเป็นสตริง และโค้ดทั่วไปควรเป็นดังนี้:

 remove_menu_page( string;$menu_slug;)

ลบฟังก์ชั่นหน้าย่อย

ฟังก์ชัน remove_submenu_page มาพร้อมกับพารามิเตอร์สองพารามิเตอร์ตัวแรกซึ่งเป็นตัวบุ้งของเมนูหลักเมื่อคุณลบเมนูย่อยและส่วนที่สองของกระสุนของเมนูย่อยที่คุณต้องการลบ รหัสทั่วไปควรเป็นดังนี้:

 remove_submenu_page( สตริง $menu_slug สตริง $submenu_slug )

สร้าง Action Hook เพื่อลบเมนูผู้ดูแลระบบและหรือรายการเมนูย่อย

ต่อไปนี้คือตัวอย่างของ action hook ที่เชื่อมต่อกับเหตุการณ์ admin_menu และมีฟังก์ชันเรียกกลับที่เราตั้งชื่อว่า ' remove_admin_menu_items'

 add_action ( 'admin_menu', 'remove_admin_menu_items', 999 );

สร้างฟังก์ชันเรียกกลับเพื่อลบเมนูผู้ดูแลระบบและหรือรายการเมนูย่อยด้วย remove_submenu_page และ remove_menu_page ()

ขั้นแรก ในฟังก์ชันเรียกกลับ คุณต้องได้รับอาร์เรย์เมนูส่วนกลางพร้อมตัวแปรเมนูย่อยส่วนกลาง หากคุณจะใช้ฟังก์ชัน unset()

ประการที่สอง คุณเพิ่ม ฟังก์ชัน remove_submenu_page หรือ remove_menu_page () ที่กำหนดเป้าหมายหน้าเว็บที่คุณต้องการลบตามที่แสดงในโค้ดด้านล่าง:

 ฟังก์ชั่น remove_admin_menu_items () {        

    remove_submenu_page( 'menu_slug', 'submenu_slug'); 

}

หรือใช้ unset คุณสามารถมีฟังก์ชันโทรกลับต่อไปนี้

 ฟังก์ชั่น remove_admin_menu_items () {

        เมนูย่อย $ ทั่วโลก; 

       unset($submenu['parent menu slug'][admin รายการเมนูย่อยดัชนีอาร์เรย์]);

 }

ตัวอย่างวิธีการลบการอัปเดตรายการเมนูผู้ดูแลระบบ

เมื่อคุณลงชื่อเข้าใช้แดชบอร์ด WordPress จะมีรายการเมนูเกี่ยวกับการอัปเดตที่อยู่ใต้เมนูแดชบอร์ดหลักดังแสดงในภาพด้านล่าง:

ลบเมนูผู้ดูแลระบบ wordpress

ฉันจะอธิบายวิธีที่คุณสามารถลบรายการเมนูผู้ดูแลระบบนี้โดยใช้วิธีที่กล่าวถึงข้างต้น อันดับแรก กระสุนเมนูหลักคือ index.php และกระสุนสำหรับเมนูอัพเดตคือ update-core.php

ลบรายการเมนูผู้ดูแลระบบ WordPress รายการหลักและเมนูย่อย

ดังนั้น คุณสามารถสร้าง action hook และฟังก์ชัน callback เพื่อลบรายการเมนูทั้งหมดโดยใช้ฟังก์ชัน remove_menu_page() ดังนี้:

 // ลบรายการเมนูหลักพร้อมกับหน้าย่อย /submenus

add_action ( 'admin_menu', 'remove_admin_menu_items', 999 );

 ฟังก์ชั่น remove_admin_menu_items () {

    remove_menu_page('index.php');


 }

การดำเนินการนี้จะลบเมนูทั้งหมดและเมนูย่อยตามที่แสดงในภาพด้านล่าง:

ลบรายการเมนูย่อยของ WordPress เท่านั้น

ลบรายการเมนูย่อยของ WordPress เท่านั้น

คุณสามารถสร้าง action hook และฟังก์ชัน callback เพื่อลบรายการเมนูย่อยโดยใช้ฟังก์ชัน remove_submenu_page ดังนี้:

 //ลบหน้าย่อยหรือเมนูย่อย

add_action ( 'admin_menu', 'remove_admin_menu_items', 999 );

ฟังก์ชั่น remove_admin_menu_items () {

    remove_submenu_page('index.php','update-core.php' );

}

การดำเนินการนี้จะลบเมนูย่อยที่ระบุในพารามิเตอร์ที่สองของฟังก์ชัน remove_submenu_page ในกรณีนี้ เราระบุเป็น ' update-core.php' และผลลัพธ์จะเป็นดังภาพด้านล่าง:

การใช้ฟังก์ชัน Unset() PHP

นอกจากนี้เรายังสามารถใช้ฟังก์ชัน unset ของ PHP เพื่อลบรายการเมนูย่อย และในกรณีนี้ เราต้องเข้าถึง อาร์เรย์เมนูย่อยส่วนกลาง ก่อน ดังแสดงในโค้ดด้านล่าง:

 //เพิ่ม action hook ให้กับ admin_menu event

add_action ( 'admin_menu', 'remove_admin_menu_items', 999 );

//ฟังก์ชันเรียกกลับ
ฟังก์ชั่น remove_admin_menu_items () {

    //admin menu array->รายการเมนูผู้ดูแลระบบ WordPress ทั้งหมดอยู่ในอาร์เรย์นี้
    เมนูย่อย $ ทั่วโลก;

    //พิมพ์อาร์เรย์ไปที่หน้าจอเพื่อให้เราสามารถดูรายการเมนูผู้ดูแลระบบโดย index
    
     print('<pre>');
     print_r($เมนูย่อย);
     print('<pre>');

      // เราลบทุกอย่างที่แสดงบนหน้าจอเพื่อให้เห็นเฉพาะรายการเมนูผู้ดูแลระบบอาร์เรย์
      ตาย();

}

รหัสนี้ได้รับจากอาร์เรย์เมนูย่อยส่วนกลางและเราพิมพ์เพื่อแสดงอาร์เรย์ของเมนูทั้งหมดเพื่อให้เราสามารถเลือกดัชนีของแต่ละรายการในเมนูผู้ดูแลระบบแล้วลบออกตามที่เราต้องการ

ในโค้ดนี้ คุณสามารถดูการใช้ฟังก์ชัน pre tag และ die() เพื่อแสดงโค้ดในรูปแบบที่อ่านง่าย

การใช้ Unset() ฟังก์ชัน PHP wordpress

ลบรายการเมนูย่อยของ WordPress โดยใช้ Unset

ดังนั้นดัชนีอาร์เรย์สำหรับ เมนูย่อย update-core คือ 10 ดังนั้นเราสามารถไปข้างหน้าและใช้ unset() ฟังก์ชั่นดังต่อไปนี้:

 // ลบรายการเมนูหลักพร้อมกับหน้าย่อยโดยใช้ unset

add_action ( 'admin_menu', 'remove_admin_menu_items', 999 );

ฟังก์ชั่น remove_admin_menu_items () {

    เมนูย่อย $ ทั่วโลก;

       unset($submenu['index.php'][0]); //ลบเมนูระดับบนสุด index.php (เมนูแดชบอร์ด - เมนูหลัก)
      unset($submenu['index.php'][10]); // ลบเมนูย่อย update-core.php (เมนูอัพเดท)


}

ผลลัพธ์จะเหมือนกับการใช้ฟังก์ชัน remove_submenu_page ของ WordPress

ลบรายการเมนูผู้ดูแลระบบ WordPress โดยใช้ Unset

เรายังลบหน้าระดับบนสุดและเมนูย่อยออกพร้อมกันได้โดยใช้ฟังก์ชันที่ไม่ได้ตั้งค่าซึ่งกำหนดเป้าหมายแต่ละหน้าเหล่านี้:

ลบรายการเมนูผู้ดูแลระบบ WordPress โดยใช้ Unset

รหัสควรเป็นดังนี้:

 //. ลบรายการเมนูย่อยหลักโดยใช้ unset

add_action ( 'admin_menu', 'remove_admin_menu_items', 999 );

ฟังก์ชั่น remove_admin_menu_items () {

   เมนูย่อย $ ทั่วโลก;

   unset($submenu['index.php'][10]);


}

ผลลัพธ์จะเป็นการลบหน้าใดหน้าหนึ่งเมื่อเราไม่ได้ตั้งค่าในโค้ด:

วิธีลบรายการเมนูผู้ดูแลระบบ WordPress โดยทางโปรแกรมโดยไม่ต้องใช้ปลั๊กอิน

ห่อ

ในบทความนี้ เราได้กล่าวถึงสองวิธีหลักที่คุณสามารถใช้ลบรายการเมนูผู้ดูแลระบบ WordPress และทำความสะอาดแดชบอร์ด WordPress ของคุณได้ หากคุณเป็นนักพัฒนา WordPress คุณสามารถใช้รหัสนี้ซ้ำและคัดลอกได้โดยง่าย ชำระเงินส่วนสำคัญของฉัน และคุณสามารถ ติดตามฉันบน GitHub สำหรับการอัปเดตเพิ่มเติมในอนาคต ฉันได้แบ่งปันตัวอย่างอื่น ๆ หลายรายการที่นี่ – WP-Snippets ฉันหวังว่าคุณจะสามารถลบรายการผู้ดูแลระบบ WordPress ที่คุณไม่ต้องการออกจากเมนูของคุณได้