วิธีเพิ่มเมนูย่อยในเมนูประเภทโพสต์ที่กำหนดเองใน WordPress

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

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

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

เพิ่มเมนูย่อยในเมนูประเภทโพสต์แบบกำหนดเอง

ตอนนี้เราต้องการเน้นที่วิธีการเพิ่มหน้าเมนูย่อยภายใต้เมนูประเภทโพสต์ที่กำหนดเอง

สำหรับภาพรวมโดยย่อ ต่อไปนี้คือขั้นตอนที่คุณควรดำเนินการเพื่อเพิ่มรายการเมนูย่อยไปยังเมนูประเภทโพสต์ที่กำหนดเอง:

  1. สร้าง action hook เพื่อลงทะเบียนเมนูย่อยด้วยฟังก์ชันการโทรกลับตามลำดับ ในกรณีนี้ มีสองฟังก์ชันที่จะสร้าง
  2. แทนที่พารามิเตอร์แรกของ add_submenu_page( ) ด้วยตัวอย่างกระสุนประเภทแก้ไขโพสต์เฉพาะ php?post_type='name-of-your-post-type-slug'
  3. เพิ่มรหัสใน 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'
$ฟังก์ชัน ฟังก์ชันเรียกกลับที่จะแสดงข้อมูลที่เราต้องการในหน้าย่อยที่เรากำลังสร้าง ตัวอย่างชื่อ ' ตัวอย่างหน้าย่อยของบทช่วยสอน'
$ตำแหน่ง นี่คือตำแหน่งของรายการเมนูที่สัมพันธ์กับเมนูย่อยอื่นๆ คุณสามารถใช้หมายเลขนี้เพื่อดันเมนูขึ้นและลงเพื่อให้เหมาะกับความต้องการของคุณ

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

WordPress เพิ่มเมนูย่อยในเมนูประเภทโพสต์ที่กำหนดเอง

เพิ่ม 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 หรือไฟล์ฐานปลั๊กอินของคุณ คุณจะเห็นการตั้งค่าบทช่วยสอนถูกเพิ่มตามที่แสดงด้านล่างและพารามิเตอร์ที่เกี่ยวข้องทั้งหมดที่กล่าวถึงข้างต้นและดังแสดงในภาพด้านล่าง:

WordPress เพิ่มเมนูย่อยในเมนูประเภทโพสต์ที่กำหนดเอง

บทสรุป

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