วิธีเพิ่มเมนูย่อยในเมนูประเภทโพสต์ที่กำหนดเองใน 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 โดยเฉพาะอย่างยิ่งที่คุณต้องการหน้าการตั้งค่าสำหรับประเภทโพสต์ที่กำหนดเอง นี่เป็นทางออกที่ดีอย่างแน่นอน