วิธีลบรายการเมนูผู้ดูแลระบบ WordPress โดยทางโปรแกรมโดยไม่ต้องใช้ปลั๊กอิน
เผยแพร่แล้ว: 2020-01-20เมนูแดชบอร์ดของ WordPress เป็นวิธีที่มีประโยชน์มากในการเข้าถึงส่วนต่างๆ ของแดชบอร์ดผู้ดูแลระบบ แต่บางครั้งอาจสร้างความรำคาญหรือไม่ต้องการได้ โดยเฉพาะอย่างยิ่ง เมื่อคุณใช้ WordPress เป็นระบบจัดการเนื้อหาสำหรับการสร้างเว็บไซต์ลูกค้าแทนที่จะใช้บล็อก คุณต้องลบรายการเมนูผู้ดูแลระบบ WordPress ที่ไม่จำเป็น
หนึ่งในวิธีที่ง่ายที่สุดในการลบรายการเมนูผู้ดูแลระบบ WordPress คือการใช้ปลั๊กอินที่ให้บริการฟรีซึ่งสามารถซ่อนรายการเมนูผู้ดูแลระบบตามบทบาทของผู้ใช้หรือตามเงื่อนไข
เมื่อไม่ลบรายการเมนูผู้ดูแลระบบ WordPress โดยใช้ Plugin
ข้อเสียของการใช้ปลั๊กอินเพื่อลบรายการเมนูผู้ดูแลระบบ WordPress อาจเป็นการพึ่งพานักพัฒนาปลั๊กอินบุคคลที่สามมากเกินไปสำหรับการอัปเดตที่สอดคล้องกัน
ความเสี่ยงของปลั๊กอินของบุคคลที่สาม
ในกรณีนี้ เมื่อคุณต้องการควบคุมว่าจะให้เมนูใดแสดงในแดชบอร์ด WordPress โดยไม่ต้องใช้ปลั๊กอิน บทช่วยสอนนี้เป็นแนวทางที่ดีที่สุดสำหรับคุณ
อัพเดทอย่างต่อเนื่อง
อีกเหตุผลหนึ่งในการลบรายการเมนูผู้ดูแลระบบ WordPress โดยทางโปรแกรมคือการอัปเดตอย่างต่อเนื่องที่คุณมีในปลั๊กอิน WordPress ทั้งหมดที่คุณติดตั้ง
การอัปเดตเหล่านี้มีความสำคัญเนื่องจากช่วยปรับปรุงประสบการณ์ผู้ใช้ ประสิทธิภาพ และความปลอดภัย แต่อาจยุ่งยากเกินไป โดยเฉพาะอย่างยิ่งเมื่อคุณจัดการกับเว็บไซต์ของลูกค้าจำนวนมาก
เมนูผู้ดูแลระบบปลั๊กอินหลายตัว
เมื่อคุณมีปลั๊กอินจำนวนมากติดตั้งอยู่บนไซต์ของคุณ ส่วนใหญ่จะมาพร้อมกับเมนูผู้ดูแลระบบ และคุณอาจต้องการลบเมนูออกเนื่องจากคุณไม่ได้ใช้เมนูผู้ดูแลระบบตลอดเวลา
ในบทความนี้ ผมจะอธิบายวิธีลบรายการเมนู WordPress โดยไม่ต้องใช้ปลั๊กอิน เพื่อให้คุณใช้งานสิ่งนี้ในไซต์ WordPress ของคุณได้ คุณต้องมีประสบการณ์เพียงเล็กน้อยในการแก้ไขไซต์ WordPress โดยเฉพาะการเพิ่มข้อมูลโค้ดลงในไฟล์ธีม functions.php
ลบรายการเมนูผู้ดูแลระบบ WordPress โดยทางโปรแกรม
ฉันชอบเริ่มต้นด้วยการสรุปสั้นๆ เนื่องจากจะช่วยให้ผู้อ่านมองหาวิธีแก้ปัญหาอย่างรวดเร็วในคำแนะนำทีละขั้นตอนได้ง่ายขึ้น ต่อไปนี้คือขั้นตอนที่คุณควรดำเนินการเพื่อลบรายการเมนูผู้ดูแลระบบ WordPress
- ลงชื่อเข้าใช้ไซต์ WordPress ของคุณและระบุรายการเมนูผู้ดูแลระบบที่ คุณต้องการลบ
- สร้าง action hook ที่เกี่ยวข้องกับเหตุการณ์ admin_menu ด้วย ฟังก์ชันเรียกกลับ ที่มีตรรกะในการลบเมนูผู้ดูแลระบบ WordPress ออกจากแดชบอร์ดของคุณ
- ฟังก์ชันเรียกกลับควรใช้ฟังก์ชัน remove_menu_page หรือ remove_submenu_page() ของ WordPress เพื่อลบรายการเมนูผู้ดูแลระบบที่เป็นเป้าหมายแต่ละรายการ ตัวอย่างเช่น คุณสามารถลบเมนูวิดเจ็ตออกจากเมนูธีมโดยใช้รหัสนี้
remove_submenu_page( 'themes.php', 'widgets.php');
หรือลบเมนูหลักของแดชบอร์ดด้วยรหัสนี้ –remove_menu_page('index.php');
- หรือคุณสามารถใช้ฟังก์ชัน
unset()
php และเข้าถึงค่าของอาร์เรย์เมนูย่อยส่วนกลางเพื่อลบรายการเมนูผู้ดูแลระบบ WordPress ที่เป็นเป้าหมายแต่ละรายการ - เพิ่มข้อมูลโค้ดนี้ในธีม functions.php และอัปเดตการเปลี่ยนแปลง การดำเนินการนี้จะลบรายการเมนูผู้ดูแลระบบ WordPress ได้สำเร็จโดยไม่ต้องใช้ปลั๊กอิน
- คุณยังสามารถเพิ่มโค้ดนี้ไปยังฟังก์ชันในปลั๊กอินที่คุณกำหนดเองได้ และโค้ดนี้จะทำงานเหมือนกับโค้ดในธีม functions.php
วิธีลบเมนูผู้ดูแลระบบ WordPress โดยไม่ต้องใช้ปลั๊กอิน
ต่อไปนี้เป็นวิธีการทีละขั้นตอนโดยละเอียดในการลบรายการเมนูผู้ดูแลระบบ WordPress โดยการเพิ่มโค้ดแทนที่จะใช้ปลั๊กอินอื่น
ระบุรายการเมนูผู้ดูแลระบบ Slug
ลงชื่อเข้าใช้แดชบอร์ด WordPress และตรวจสอบรายการเมนูผู้ดูแลระบบที่คุณต้องการลบ ดังที่คุณเห็นในตัวอย่างนี้ เมนูแดชบอร์ดหลักมี slug index.php
ทากนี้มีความสำคัญเนื่องจากเป็นหนึ่งในพารามิเตอร์ที่คุณเพิ่มในฟังก์ชัน remove_submenu_page() ตามที่ฉันจะอธิบายในไม่ช้า
ทำความเข้าใจวิธีลบหน้าและลบฟังก์ชั่นหน้าเมนูย่อย
ลบฟังก์ชั่นหน้า
ฟังก์ชัน 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 จะมีรายการเมนูเกี่ยวกับการอัปเดตที่อยู่ใต้เมนูแดชบอร์ดหลักดังแสดงในภาพด้านล่าง:
ฉันจะอธิบายวิธีที่คุณสามารถลบรายการเมนูผู้ดูแลระบบนี้โดยใช้วิธีที่กล่าวถึงข้างต้น อันดับแรก กระสุนเมนูหลักคือ 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 เท่านั้น
คุณสามารถสร้าง 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() เพื่อแสดงโค้ดในรูปแบบที่อ่านง่าย
ลบรายการเมนูย่อยของ 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
เรายังลบหน้าระดับบนสุดและเมนูย่อยออกพร้อมกันได้โดยใช้ฟังก์ชันที่ไม่ได้ตั้งค่าซึ่งกำหนดเป้าหมายแต่ละหน้าเหล่านี้:
รหัสควรเป็นดังนี้:
//. ลบรายการเมนูย่อยหลักโดยใช้ unset add_action ( 'admin_menu', 'remove_admin_menu_items', 999 ); ฟังก์ชั่น remove_admin_menu_items () { เมนูย่อย $ ทั่วโลก; unset($submenu['index.php'][10]); }
ผลลัพธ์จะเป็นการลบหน้าใดหน้าหนึ่งเมื่อเราไม่ได้ตั้งค่าในโค้ด:
ห่อ
ในบทความนี้ เราได้กล่าวถึงสองวิธีหลักที่คุณสามารถใช้ลบรายการเมนูผู้ดูแลระบบ WordPress และทำความสะอาดแดชบอร์ด WordPress ของคุณได้ หากคุณเป็นนักพัฒนา WordPress คุณสามารถใช้รหัสนี้ซ้ำและคัดลอกได้โดยง่าย ชำระเงินส่วนสำคัญของฉัน และคุณสามารถ ติดตามฉันบน GitHub สำหรับการอัปเดตเพิ่มเติมในอนาคต ฉันได้แบ่งปันตัวอย่างอื่น ๆ หลายรายการที่นี่ – WP-Snippets ฉันหวังว่าคุณจะสามารถลบรายการผู้ดูแลระบบ WordPress ที่คุณไม่ต้องการออกจากเมนูของคุณได้