WordPress Custom Post Types – คู่มือสำหรับผู้เริ่มต้น

เผยแพร่แล้ว: 2017-01-04

WordPress ไม่ได้เป็นเพียงเครื่องมือสำหรับการเขียนและเผยแพร่บทความในบล็อกอีกต่อไป ตลอดหลายปีที่ผ่านมา ระบบได้พัฒนาเป็นระบบการจัดการเนื้อหาที่ขยายได้ ยืดหยุ่น และมีประสิทธิภาพ WordPress นั้นช้าแต่แน่นอนว่ากำลังก้าวไปสู่การเป็นเฟรมเวิร์กที่สมบูรณ์สำหรับการสร้างเว็บแอป สิ่งหนึ่งที่ทำให้ CMS นี้ปรับเปลี่ยนได้คือ Custom Post Types

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

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

นอกกรอบ WordPress มาพร้อมกับประเภทโพสต์ต่อไปนี้:

  • โพสต์
  • หน้าหนังสือ
  • การแก้ไข
  • เอกสารแนบ
  • เมนูนำทาง

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

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

ตัวอย่างประเภทโพสต์ที่กำหนดเอง

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

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

การสร้างประเภทโพสต์ที่กำหนดเองใน WordPress

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

การใช้ปลั๊กอิน

มีปลั๊กอินจำนวนหนึ่งสำหรับสร้างประเภทโพสต์ที่กำหนดเอง หนึ่งในสิ่งที่ได้รับความนิยมมากที่สุดคือ Custom Post Type UI — ซึ่งช่วยให้คุณสร้างการจัดหมวดหมู่แบบกำหนดเองสำหรับประเภทโพสต์ของคุณ

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

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

ชื่อประเภทโพสต์: Podcasts
ป้ายกำกับ: Podcasts
ชื่อเดียว: Podcast
คำอธิบาย : ประเภทโพสต์สำหรับพอดแคสต์

ฟิลด์ชื่อเอกพจน์ถูกใช้โดย WordPress เพื่อแสดงองค์ประกอบ UI และการดำเนินการบางอย่างเช่น เพิ่มพอดคาสต์ใหม่

ด้วยตนเอง

ในการสร้างประเภทโพสต์แบบกำหนดเอง คุณต้องแก้ไข functions.php ของธีมของคุณ ใช้ไคลเอนต์ FTP ที่คุณชื่นชอบและเข้าสู่ระบบเซิร์ฟเวอร์ที่โฮสต์เว็บไซต์ของคุณ เมื่อเชื่อมต่อแล้ว คุณต้อง:
1. ไปที่ wp-content -> ธีม -> ธีมของคุณ
2. เปิด functions.php
3. หากคุณกำลังใช้ธีมลูก และไม่มีไฟล์ดังกล่าว ให้สร้างมันขึ้นมา
4. ใส่โค้ดด้านล่าง

ตามตัวอย่างของเรา เราจำเป็นต้องสร้างประเภทโพสต์ที่กำหนดเองของพอดคาสต์ นี่คือรหัสสำหรับสิ่งนั้น (จากขั้นตอนที่ 4: โค้ดต่อไปนี้จะเข้าสู่ไฟล์ functions.php ของคุณ):

 // Registering CPT function podcast_post_type() { //Setting up the user interface labels for podcasting CPT $labels = array( 'name' => _x( 'Podcasts', 'Post Type General Name' ), 'singular_name' => _x( 'Podcast', 'Post Type Singular Name' ), 'menu_name' => __( 'Podcasts' ), 'name_admin_bar' => __( 'Podcast' ), 'parent_item_colon' => __( 'Parent Podcast' ), 'all_items' => __( 'All Podcasts' ), 'add_new_item' => __( 'Post New Podcast' ), 'add_new' => __( 'New Podcast' ), 'new_item' => __( 'New Podcast' ), 'edit_item' => __( 'Edit Podcast' ), 'update_item' => __( 'Update Podcast' ), 'view_item' => __( 'View Podcast' ), 'search_items' => __( 'Search Podcasts' ), 'not_found' => __( 'No Podcasts found' ), 'not_found_in_trash' => __( 'No Podcasts found in trash' ) ); //Setting up other options for Podcasts CPT $args = array( 'label' => __( 'Podcasts' ), 'labels' => $labels, 'description' => __( 'Creating and managing podcasts' ), 'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail', 'comments', 'revisions', 'custom-fields' ), //Initially supported features 'taxonomies' => array( 'podcast-category'), //If custom taxonomies exist, insert their names in the array 'hierarchical' => false, 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'menu_position' => 5, 'show_in_admin_bar' => true, 'show_in_nav_menus' => true, 'can_export' => true, 'has_archive' => true, 'exclude_from_search' => false, 'publicly_queryable' => true, ); //Registering custom post type register_post_type( 'podcasts', $args ); } // Hook into init action add_action( 'init', 'podcasts_post_type', 0 );

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

  • อาร์เรย์ $labels จะบอก WordPress ถึงวิธีแสดงประเภทโพสต์ในแผงการดูแลระบบ
  • อาร์เรย์ $args โหลดการกำหนดค่าทั้งหมดจากอาร์เรย์ $labels และระบุตัวเลือกสำหรับประเภทโพสต์ที่กำหนดเอง
  • ความมหัศจรรย์เกิดขึ้นเมื่อฟังก์ชัน register_post_type( 'podcasts', $args ) ถูกเรียกภายในฟังก์ชันหลัก podc ​​​​asts_post_type() โดยมี 2 อาร์กิวเมนต์: ชื่อของประเภทโพสต์ที่กำหนดเองและตัวเลือกที่เก็บไว้ใน $args (ซึ่งเป็นอาเรย์ที่เชื่อมโยง) จากนั้น เราเพียงแค่ขอฟังก์ชัน podcasts_post_type() เพื่อเริ่มต้น และปล่อยให้ WordPress โหลด

เมื่อคุณคลิกบันทึก และคุณอัปโหลด functions.php ที่แก้ไขแล้วไปยังโฟลเดอร์ของธีมของคุณ คุณควรเห็น Podcasts (เพียงแค่ร้องโพสต์ เพราะเราตั้งค่า menu_position ใน $args เป็น 5) บนแผงการดูแลระบบ WordPress ของคุณ หากคุณวางเมาส์ไว้ คุณจะเห็นการดำเนินการเช่น "พ็อดคาสท์ทั้งหมด" และ "เพิ่มพอดคาสต์ใหม่" เช่นเดียวกับที่เราระบุไว้ในอาร์เรย์ $labels เนื่องจากเราไม่ได้แทรกฟิลด์ที่กำหนดเอง เมื่อคุณพยายามเพิ่มพ็อดคาสท์ใหม่ ทุกอย่างจะเหมือนกับว่าคุณเพิ่มโพสต์ธรรมดา

หากคุณสังเกตเห็นว่าในอาร์เรย์ $args เราได้เพิ่ม 'พอดคาสต์' เป็นอนุกรมวิธาน เรายังไม่ได้สร้างอนุกรมวิธานนี้ แต่ท้ายที่สุดแล้วจะมีหมวดหมู่ที่กำหนดเอง เช่น หมวดหมู่พอดคาสต์ รายการพอดคาสต์ ฯลฯ

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