วิธีเพิ่มเมนูย่อยในเมนูประเภทโพสต์ที่กำหนดเองใน WordPress
เผยแพร่แล้ว: 2020-01-23
หากคุณต้องการเพิ่มรายการเมนูย่อยในเมนูประเภทโพสต์ที่กำหนดเอง คุณควรดำเนินการให้เสร็จสิ้นโดยใช้ข้อมูลโค้ดง่ายๆ ตามหลักการแล้ว เมนูประเภทโพสต์ที่กำหนดเองจะมีค่าเริ่มต้นคือเพิ่มบทความใหม่ อนุกรมวิธาน และเมนูบทความทั้งหมด แต่คุณสามารถเพิ่มรายการเมนูย่อยอื่นในหน้าผู้ดูแลระบบการตั้งค่า WordPress ได้
ก่อนที่คุณจะเรียนรู้วิธีเพิ่มเมนูย่อยในเมนูประเภทโพสต์ที่กำหนดเอง สิ่งสำคัญคือคุณต้องเข้าใจวิธีลงทะเบียนประเภทโพสต์ที่กำหนดเองใน WordPress โดยไม่ต้องใช้ปลั๊กอิน
คุณต้องการบุ้งของประเภทโพสต์ที่กำหนดเองเป็นหนึ่งในพารามิเตอร์ของ ฟังก์ชัน add_submenu_page() เพื่อให้คุณแสดงเมนูย่อยภายใต้เมนูประเภทโพสต์ที่กำหนดเอง ให้เราเริ่มต้นด้วยการตรวจสอบอย่างรวดเร็วเกี่ยวกับวิธีการลงทะเบียนประเภทโพสต์ที่กำหนดเองในธีม WordPress
การลงทะเบียนประเภทโพสต์ที่กำหนดเอง
แม้ว่าฉันจะอธิบายรายละเอียดทั้งหมดเกี่ยวกับ วิธีเพิ่มประเภทโพสต์ที่กำหนดเองใน WordPress ในโพสต์นั้น ฉันจะแชร์รหัสที่คุณต้องการเพิ่มประเภทโพสต์ที่กำหนดเองใน WordPress อย่างรวดเร็ว รหัสที่ลงทะเบียนประเภทโพสต์ที่กำหนดเองมีดังนี้:
/**
* ประเภทโพสต์ที่กำหนดเอง - register_post_type()
* @description- Njengah Tutorial ตัวอย่างประเภทโพสต์ที่กำหนดเอง
* @link -https://gist.github.com/Njengah/839466b773085ac2430772e081357cee
*
*/
add_action('init', "njengah_tutorial_cpt");
ฟังก์ชัน njengah_tutorial_cpt(){
$labels = อาร์เรย์ (
'name' => _x('Tutorials', 'ประเภทโพสต์ชื่อทั่วไป'),
'singular_name'=> _x('Tutorial', 'ประเภทโพสต์ชื่อเอกพจน์'),
'menu_name' => _x('บทแนะนำ', 'เมนูผู้ดูแลระบบ'),
'name_admin_bar' => _x('Tutorial', 'เพิ่มใหม่ในแถบผู้ดูแลระบบ'),
'add_new' => _x('เพิ่มใหม่', ''),
'add_new_item' => __('เพิ่มบทช่วยสอนใหม่'),
'edit_item' => __('แก้ไขบทช่วยสอน'),
'new_item' => __('บทแนะนำใหม่'),
'all_items' => __('บทแนะนำทั้งหมด'),
'view_item' => __('ดูบทช่วยสอน'),
'search_items' => __('Search Tutorials'),
'not_found' => __('ไม่พบบทช่วยสอน'),
'not_found_in_trash' => __('ไม่พบบทช่วยสอนในถังขยะ'),
'parent_item_colon' => __('แบบฝึกหัดสำหรับผู้ปกครอง:'),
);
$args = อาร์เรย์ (
'ลำดับชั้น' => จริง
'labels' => $labels,
'สาธารณะ' => จริง
'publicly_queryable' => จริง
'คำอธิบาย' => __('คำอธิบาย.'),
'show_ui' => จริง
'show_in_menu' => จริง,
'show_in_nav_menus' => จริง
'query_var' => จริง
'เขียนใหม่' => จริง
'query_var' => จริง
'rewrite' => array('slug' => 'tutorial'),
'capability_type' => 'หน้า',
'has_archive' => จริง
'menu_position' => 22,
"show_in_rest" => จริง
'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'revisions', 'page-attributes', 'custom-fields' )
);
register_post_type('บทช่วยสอน', $args);
}คุณควรเพิ่มโค้ดนี้ลงในไฟล์ functions.php ของธีมลูกของคุณและควรเห็นประเภทโพสต์ที่กำหนดเองในแดชบอร์ดของคุณดังที่แสดงในภาพด้านล่าง:

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

- สร้าง action hook เพื่อลงทะเบียนเมนูย่อยด้วยฟังก์ชันการโทรกลับตามลำดับ ในกรณีนี้ มีสองฟังก์ชันที่จะสร้าง
- แทนที่พารามิเตอร์แรกของ add_submenu_page( ) ด้วยตัวอย่างกระสุนประเภทแก้ไขโพสต์เฉพาะ php?post_type='name-of-your-post-type-slug'
- เพิ่มรหัสใน php และคุณจะเพิ่มเมนูย่อยลงในประเภทโพสต์ที่กำหนดเองได้สำเร็จ
เพิ่มฟังก์ชั่นหน้าเมนูย่อย
ฟังก์ชันนี้ add_submenu_page ใช้เพื่อเพิ่มเมนูย่อยในหน้าเมนูผู้ดูแลระบบทั้งหมด และคุณสามารถใช้ฟังก์ชัน remove_submenu_page เพื่อ ลบเมนูย่อยออกจากผู้ดูแลระบบ WordPress
ฟังก์ชัน add_submenu_page () โดยค่าเริ่มต้นใช้พารามิเตอร์ 7 ตัว และโค้ดทั่วไปสามารถแสดงได้ดังนี้:
add_submenu_page(
สตริง $parent_slug,
สตริง $page_title,
สตริง $men_title,
ความสามารถของสตริง $,
สตริง $men_slug,
ฟังก์ชัน $ ที่เรียกได้ = '',
int $position = null
)พารามิเตอร์ฟังก์ชันหน้าเมนูย่อยเพิ่มสามารถอธิบายได้ดังนี้:
| พารามิเตอร์ | คำอธิบาย |
| $parent_slug | นี่คือชื่อกระสุนสำหรับตัวอย่างเมนูหลัก ในกรณีนี้ จะเป็น edit.php?post_type ='tutorials' |
| $page_title | ข้อความที่จะแสดงในตัวอย่างแท็กชื่อ 'ตัวอย่างหน้าย่อยบทช่วยสอน' |
| $men_title | ข้อความที่จะแสดงในเมนูย่อยที่เรากำลังสร้างตัวอย่าง ' บทช่วยสอน ' |
| $ความสามารถ | ความสามารถบทบาท WordPress ของผู้ใช้ที่สามารถเข้าถึงเมนูนี้ ตัวอย่าง 'ผู้ดูแลระบบ' |
| $men_slug | นี่คือกระสุนของหน้าที่เราจะสร้างตัวอย่าง ' tutorials_subpage_example' |
| $ฟังก์ชัน | ฟังก์ชันเรียกกลับที่จะแสดงข้อมูลที่เราต้องการในหน้าย่อยที่เรากำลังสร้าง ตัวอย่างชื่อ ' ตัวอย่างหน้าย่อยของบทช่วยสอน' |
| $ตำแหน่ง | นี่คือตำแหน่งของรายการเมนูที่สัมพันธ์กับเมนูย่อยอื่นๆ คุณสามารถใช้หมายเลขนี้เพื่อดันเมนูขึ้นและลงเพื่อให้เหมาะกับความต้องการของคุณ |
สำหรับภาพประกอบในบทช่วยสอนนี้ เราจะเพิ่มหน้าเมนูย่อยให้กับโพสต์แบบกำหนดเองของบทช่วยสอนที่เราสร้างขึ้นด้านบนและดังที่แสดงในภาพด้านล่าง:

เพิ่ม Slug ประเภทโพสต์แบบกำหนดเองไปยัง Parameter Slug Parameter
ในการลงทะเบียนเมนูย่อยของเรา เราควรเพิ่มรหัสต่อไปนี้ในไฟล์ functions.php ด้านล่าง ซึ่งเราได้เพิ่มรหัสเพื่อลงทะเบียนประเภทโพสต์ที่กำหนดเองของบทช่วยสอน:
/**
* ประเภทโพสต์ที่กำหนดเองเพิ่มหน้าย่อยในเมนูโพสต์ที่กำหนดเอง
* @description- Njengah Tutorial ตัวอย่างเมนูย่อยประเภทโพสต์ที่กำหนดเอง
* @link - https://gist.github.com/Njengah/0764f2c88742c19b67a212c914c9f25f
*
*/
// ฮุก
add_action('admin_menu', 'add_tutorial_cpt_submenu_example');
//admin_menu ฟังก์ชันเรียกกลับ
ฟังก์ชัน add_tutorial_cpt_submenu_example(){
add_submenu_page(
'edit.php?post_type=tutorial', //$parent_slug
'ตัวอย่างหน้าย่อยของบทช่วยสอน' //$page_title
'การตั้งค่าการสอน' //$menu_title
'manage_options', //$ความสามารถ
'tutorial_subpage_example',//$menu_slug
'tutorial_subpage_example_render_page'//$function
);
}
//add_submenu_page ฟังก์ชันเรียกกลับ
ฟังก์ชัน tutorial_subpage_example_render_page () {
echo '<h2> ตัวอย่างหน้าย่อยการสอน </h2>';
}เมื่อคุณเพิ่มโค้ดลงใน functions.php หรือไฟล์ฐานปลั๊กอินของคุณ คุณจะเห็นการตั้งค่าบทช่วยสอนถูกเพิ่มตามที่แสดงด้านล่างและพารามิเตอร์ที่เกี่ยวข้องทั้งหมดที่กล่าวถึงข้างต้นและดังแสดงในภาพด้านล่าง:

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