วิธีสร้างประเภทโพสต์ที่กำหนดเองของ WordPress โดยทางโปรแกรม
เผยแพร่แล้ว: 2021-10-05คุณต้องการเผยแพร่ประเภทโพสต์ที่กำหนดเองบนไซต์ของคุณหรือไม่? เรามีคุณครอบคลุม ในคู่มือนี้ เราจะสอนวิธี สร้างประเภทโพสต์ที่กำหนดเองของ WordPress โดยใช้โค้ดเพียงเล็กน้อย
เริ่มแรก WordPress ถูกสร้างขึ้นเพื่อเผยแพร่โพสต์ อย่างไรก็ตาม หลังจากหลายปีที่ผ่านมา WordPress เป็นมากกว่าแพลตฟอร์มสำหรับเผยแพร่โพสต์ ปัจจุบัน เป็นโซลูชันเว็บที่สมบูรณ์ที่สุดที่ขับเคลื่อนเกือบ 40% ของเว็บไซต์ทั้งหมด
แม้ว่าจะมีการรวมฟังก์ชันการทำงานหลายอย่างไว้ด้วยกัน แต่การเผยแพร่โพสต์ยังคงเป็นวิธีที่ดีที่สุดวิธีหนึ่งในการดึงดูดผู้ใช้มายังไซต์ของคุณและทำให้พวกเขามีส่วนร่วม WordPress เสนอประเภทโพสต์เริ่มต้น แต่ถ้าคุณต้องการปรับแต่งไซต์ของคุณและทำให้ไม่ซ้ำใครเพื่อให้โดดเด่นจากคู่แข่งของคุณ การสร้างประเภทโพสต์แบบกำหนดเองอาจเป็นทางออกที่ดี
ในบทช่วยสอนนี้ เราจะแสดงวิธี สร้างและเผยแพร่ประเภทโพสต์ที่กำหนดเองของ WordPress โดยทางโปรแกรม ก่อนจะพูดถึงเรื่องนั้น เรามาทำความเข้าใจกันดีกว่าว่าประเภทโพสต์ที่กำหนดเองคืออะไร และเมื่อใดที่คุณควรใช้
ประเภทโพสต์ที่กำหนดเองคืออะไร
ประเภทโพสต์ที่กำหนดเองคือประเภทของเนื้อหา WordPress มาพร้อมกับโพสต์หลายประเภทตามค่าเริ่มต้น โพสต์และเพจเป็นโพสต์ที่มีชื่อเสียงที่สุด แต่มีอื่นๆ:
- กระทู้
- หน้า
- เอกสารแนบ
- เมนูนำทาง
- การแก้ไข
- CSS ที่กำหนดเอง
- ชุดการเปลี่ยนแปลง
ผู้ใช้ส่วนใหญ่ใช้ห้าประเภทแรก แต่มีประเภทอื่นๆ ที่จริงแล้ว คุณอาจใช้บางประเภทโดยไม่รู้ว่าเป็นประเภทโพสต์ที่กำหนดเอง
ตัวอย่างที่ดีที่สุดของประเภทโพสต์ที่กำหนดเองคือผลิตภัณฑ์ WooCommerce เมื่อคุณเปิดใช้งาน WooCommerce เป็นครั้งแรก ปลั๊กอินจะสร้างประเภทโพสต์แบบกำหนดเองที่เรียกว่า "ผลิตภัณฑ์" เมื่อคุณเริ่มสร้างผลิตภัณฑ์ ผลิตภัณฑ์เหล่านั้นจะถูกเผยแพร่เป็นประเภทโพสต์ผลิตภัณฑ์ ซึ่งมีการปรับปรุงทั้งหมดที่ WooCommerce นำเสนอ
แม้ว่าประเภทโพสต์เหล่านี้จะไม่ได้เรียกว่ากำหนดเอง แต่คุณสามารถสร้างประเภทโพสต์ได้เช่นเดียวกับที่ WooCommerce ทำและตั้งชื่อให้กับพวกเขา ตัวอย่างเช่น กิจกรรม รายชื่อ ตารางเวลา บทเรียน พอร์ตโฟลิโอ และโปรไฟล์อาจเป็นชื่อประเภทโพสต์ที่จะเป็นประโยชน์สำหรับบางเว็บไซต์
โดยรวมแล้ว ประเภทโพสต์ที่กำหนดเองเป็นโพสต์ประเภทใหม่ ที่ผู้ใช้สามารถสร้างได้ตามความต้องการเฉพาะเพื่อปรับแต่งเว็บไซต์ของตน
ทำไมและเมื่อใดที่คุณควรใช้ประเภทโพสต์ที่กำหนดเอง
ประเภทโพสต์ที่กำหนดเอง (CPT) อาจแตกต่างกันมากขึ้นอยู่กับวิธีการสร้าง ดังนั้นคุณจึงสามารถใช้เพื่อแก้ไขปัญหาทุกประเภท
คุณสามารถใช้ประเภทโพสต์ที่กำหนดเองได้เมื่อ:
- คุณจะโพสต์ข้อมูลบางประเภทเป็นประจำซึ่งคุณไม่สามารถเผยแพร่โดยใช้ประเภทโพสต์เริ่มต้น
- ต้องแยกโพสต์บางประเภทออกจากโพสต์มาตรฐาน
- จำเป็นต้องเปลี่ยนพฤติกรรมของโพสต์บางประเภท
- ต้องการปรับแต่งคุณสมบัติโพสต์ กระบวนการเผยแพร่ และองค์ประกอบ หรือใช้คุณสมบัติพิเศษบางอย่างกับพวกมัน
ตามกฎทั่วไป คุณควรใช้ CPT บนไซต์ WordPress เมื่อคุณต้องการโพสต์ประเภทต่างๆ ที่มีคุณสมบัติหรือพฤติกรรมที่กำหนดเอง
ประเภทโพสต์ที่กำหนดเองจะแตกต่างจากประเภทโพสต์เริ่มต้น ดังนั้นจึงต้องได้รับการดูแลเป็นพิเศษโดยไม่ต้องเขียนทับคุณสมบัติประเภทโพสต์เริ่มต้น นี่เป็นข้อได้เปรียบอย่างมากเมื่อคุณต้องการโพสต์ประเภทต่างๆ เนื่องจากคุณสามารถสร้างประเภทโพสต์แบบกำหนดเองได้ตั้งแต่ต้น ซึ่งจะตรงตามความต้องการของคุณ
ตอนนี้เราเข้าใจมากขึ้นว่ามันคืออะไรและควรใช้เมื่อใด มาดูวิธีสร้างประเภทโพสต์ที่กำหนดเองกัน
วิธีสร้างประเภทโพสต์ที่กำหนดเองของ WordPress โดยทางโปรแกรม
ในส่วนนี้ เราจะแสดงวิธีสร้างประเภทบทความที่กำหนดเองใน WordPress ด้วยตัวอย่าง ก่อนที่คุณจะเริ่มต้น ตรวจสอบให้แน่ใจว่าคุณได้สำรองข้อมูลไซต์ของคุณและสร้างธีมย่อย หากคุณยังไม่มี
ในแดชบอร์ดของคุณ ให้ไปที่ Appearance > Theme Editor เปิดไฟล์ functions.php ของธีมย่อยที่คอลัมน์ทางขวา และวางสคริปต์ต่อไปนี้ มันจะลงทะเบียนประเภทโพสต์ที่กำหนดเองที่เรียกว่า ภาพยนตร์
ฟังก์ชัน QuadLayers_custom_post_type () { // ตั้งค่าป้ายกำกับ UI สำหรับ Custom Post Type $labels = อาร์เรย์ ( 'name' => _x( 'Movies', 'Post Type General Name', 'หน้าร้าน' ), 'singular_name' => _x( 'Movie', 'Post Type ชื่อเอกพจน์', 'หน้าร้าน' ), 'menu_name' => __( 'ภาพยนตร์', 'หน้าร้าน' ), 'parent_item_colon' => __( 'ภาพยนตร์หลัก', 'หน้าร้าน' ), 'all_items' => __( 'ภาพยนตร์ทั้งหมด', 'หน้าร้าน' ), 'view_item' => __( 'ดูหนัง', 'หน้าร้าน' ), 'add_new_item' => __( 'เพิ่มภาพยนตร์ใหม่', 'หน้าร้าน' ), 'add_new' => __( 'เพิ่มใหม่', 'หน้าร้าน' ), 'edit_item' => __( 'แก้ไขภาพยนตร์', 'หน้าร้าน' ), 'update_item' => __( 'อัปเดตภาพยนตร์', 'หน้าร้าน' ), 'search_items' => __( 'ค้นหาภาพยนตร์', 'หน้าร้าน' ), 'not_found' => __( 'ไม่พบ', 'หน้าร้าน' ), 'not_found_in_trash' => __( 'ไม่พบในถังขยะ', 'หน้าร้าน' ), ); // ตั้งค่าตัวเลือกอื่นๆ สำหรับ Custom Post Type $args = อาร์เรย์ ( 'label' => __( 'ภาพยนตร์', 'หน้าร้าน' ), 'description' => __( 'ข่าวภาพยนตร์และบทวิจารณ์', 'หน้าร้าน' ), 'labels' => $labels, 'supports' => array( 'หัวเรื่อง', 'ตัวแก้ไข', 'ข้อความที่ตัดตอนมา', 'ผู้เขียน', 'ภาพขนาดย่อ', 'ความคิดเห็น', 'การแก้ไข', 'ฟิลด์ที่กำหนดเอง', ), 'taxonomies' => อาร์เรย์ ( 'ประเภท' ), 'ลำดับชั้น' => เท็จ 'สาธารณะ' => จริง 'show_ui' => จริง 'show_in_menu' => จริง, 'show_in_nav_menus' => จริง 'show_in_admin_bar' => จริง 'menu_position' => 5, 'can_export' => จริง 'has_archive' => จริง 'exclude_from_search' => เท็จ 'publicly_queryable' => จริง 'capability_type' => 'โพสต์', 'show_in_rest' => จริง ); // การลงทะเบียน Custom Post Type register_post_type( 'ภาพยนตร์', $args ); } add_action( 'init', 'QuadLayers_custom_post_type', 0 );
หลังจากวางโค้ดแล้ว แท็บใหม่ชื่อ Movies จะปรากฏบนแดชบอร์ดผู้ดูแลระบบ WordPress ของคุณ
หากคุณเปิดขึ้นมา คุณจะเห็นว่าตัวแก้ไขบทความเหมือนกับประเภทบทความเริ่มต้น เนื่องจากเราได้ตั้งค่าอาร์กิวเมนต์เดียวกันสำหรับหน้าจอตัวแก้ไขบทความ แล้วเราจะรู้ได้อย่างไรว่าเป็นตัวแก้ไขประเภทโพสต์ที่กำหนดเอง เพราะใน URL และชื่อหน้า คุณสามารถดูประเภทโพสต์ภาพยนตร์ได้
เมื่อคุณเห็นผลสุดท้ายแล้ว มาวิเคราะห์โค้ดกัน เพื่อให้คุณเข้าใจได้ดีขึ้นว่าแต่ละส่วนทำอะไรได้บ้าง
คำอธิบายรหัส
เราเพิ่งเห็นวิธีสร้างประเภทโพสต์ที่กำหนดเองของ WordPress โดยทางโปรแกรม แต่นั่นเป็นเพียงครึ่งเดียวของสิ่งที่คุณต้องรู้ หากคุณต้องการสร้างประเภทโพสต์ของคุณเอง คุณต้องปรับแต่งโค้ด และสำหรับสิ่งนั้น คุณต้องเข้าใจว่าแต่ละส่วนของข้อมูลโค้ดทำอะไร
เราใช้ wp_init()
hook เพื่อให้แน่ใจว่าฟังก์ชันของเราทำงานเพียงครั้งเดียว: เมื่อ WordPress เริ่มต้น ใน QuadLayers_custom_post_type()
ของเรา มีสามส่วน
1) ป้าย
เหล่านี้เป็นชุดของสตริงที่ธีมจะใช้ในหน้าผู้ดูแลระบบและส่วนหน้าที่แตกต่างกัน สิ่งนี้ถูกตั้งค่าในอาร์เรย์เดียว:
$labels = array(
'name' => _x( 'Movies', 'Post Type General Name', 'storefront' ),
);
2) ตัวเลือก
เหล่านี้คือตัวเลือกที่กำหนดไว้ล่วงหน้าบางส่วนซึ่งกำหนดลักษณะการทำงานและคุณลักษณะอื่นๆ ของประเภทโพสต์ที่กำหนดเอง ( ภาพยนตร์ )
แต่ละตัวเลือกเป็นคำสั่งเฉพาะที่จะกำหนดว่าประเภทโพสต์ที่กำหนดเองของเราจะดำเนินการอย่างไร สิ่งที่เกี่ยวข้องมากที่สุดคือ:
- 'รองรับ': กำหนดส่วนประกอบที่จะใช้กับตัวแก้ไขโพสต์
- 'taxonomies': คุณสามารถใช้หมวดหมู่ที่มีอยู่อย่างน้อยหนึ่งหมวดหมู่หรือหมวดหมู่ที่กำหนดเองกับ CPT ทั้งหมดที่ลงทะเบียนในฟังก์ชันปัจจุบัน
- ' 'ลำดับชั้น' : โพสต์ต้องไม่มีเนื้อหาหลักและจะทำให้ CPT แตกต่างจากหน้าเว็บ ตั้งค่านี้เป็นจริงหากคุณต้องการเผยแพร่หน้าที่กำหนดเองแทนประเภทโพสต์ที่กำหนดเอง
- ' show_in_admin_bar': แสดงแท็บ CPT บนแดชบอร์ดผู้ดูแลระบบ WordPress
สำหรับรายการอาร์กิวเมนต์ทั้งหมดและคำอธิบาย โปรดดูเอกสารนี้
3) การลงทะเบียนประเภทโพสต์ที่กำหนดเอง
ฟังก์ชันของ WordPress register_post_type() จะลงทะเบียนประเภทโพสต์ที่กำหนดเองใหม่ของเราในที่สุด และตั้งค่าให้พร้อมใช้งาน
ตอนนี้คุณเข้าใจโค้ดมากขึ้นแล้ว คุณสามารถเริ่มเผยแพร่ประเภทโพสต์ที่กำหนดเองได้ แต่นอกเหนือจากการเผยแพร่ คุณจะต้องแสดง CPT ของคุณไว้ที่ใดที่หนึ่ง เรามาดูวิธีการทำกัน
วิธีแสดงประเภทโพสต์ที่กำหนดเองใน WordPress
จนถึงตอนนี้ เราได้เห็นวิธีสร้างประเภทโพสต์แบบกำหนดเองโดยทางโปรแกรมบน WordPress แล้ว หลังจากเผยแพร่แล้ว คุณต้องตัดสินใจว่าจะแสดงผลที่ใด
มีหลายวิธีที่คุณสามารถพิมพ์ CPT ที่ส่วนหน้า คุณสามารถแสดงรายการโพสต์แบบกำหนดเองทั้งหมดได้ในโพสต์ หน้า แถบด้านข้าง หรือที่อื่นๆ ที่คุณต้องการ
ในสคริปต์ตัวอย่างต่อไปนี้ เราจะสร้างชอร์ตโค้ดที่กำหนดเองเพื่อแสดงประเภทโพสต์ที่กำหนดเองทั้งหมดที่เราสร้างขึ้นโดยใช้ฟังก์ชันก่อนหน้าในหน้าใหม่
สคริปต์ต่อไปนี้จะสร้างรหัสย่อชื่อ ภาพยนตร์ ซึ่งจะพิมพ์ภาพยนตร์ทั้งหมดที่เราเพิ่มลงใน CPT ของเราในหน้าใดก็ได้ที่เราเพิ่มรหัสย่อ
add_shortcode('ภาพยนตร์', 'QuadLayers_display_cpt_shortcode'); ฟังก์ชัน QuadLayers_display_cpt_shortcode(){ $args = array( 'post_type' => 'movies', 'posts_per_page' => 10 ); $the_query = ใหม่ WP_Query( $args ); ถ้า ( $the_query->have_posts() ) : ในขณะที่ ( $the_query->have_posts() ) : $the_query->the_post(); $c= the_title( sprintf( '<h2 class="entry-title">', esc_url( get_the_title() ) ), '</h2>'). '<div class="entry-content">'. เนื้อหา(). '</div>'; ในที่สุด; wp_reset_postdata(); อื่น: $c = 'ขออภัย ไม่มีบทความที่ตรงกับเกณฑ์ของคุณ'; เอนดิฟ; ส่งคืน $c; }
ดังนั้นหากคุณวางรหัสย่อบนหน้า:
คุณจะเห็นผลลัพธ์:
บทสรุป
โดยสรุปแล้ว เราพบว่าโดยค่าเริ่มต้น WordPress มีโพสต์บางประเภท แต่คุณสามารถเพิ่มประเภทโพสต์ที่กำหนดเองได้ขึ้นอยู่กับความต้องการของคุณเพื่อปรับแต่งไซต์ของคุณ
ในคู่มือนี้ เราได้แสดงให้คุณเห็นถึงวิธีการสร้างประเภทโพสต์ WordPress แบบกำหนดเองโดยทางโปรแกรม เราได้วิเคราะห์ข้อมูลโค้ดและอธิบายแต่ละส่วนเพื่อให้คุณปรับแต่งและใช้งานบนเว็บไซต์ของคุณได้ นอกจากนี้ เราได้เห็นวิธีสร้างรหัสย่อที่กำหนดเอง ซึ่งช่วยให้คุณแสดงประเภทโพสต์ที่กำหนดเองได้ทุกที่ในไซต์ของคุณ
คุณได้ลองสร้างประเภทโพสต์แบบกำหนดเองบนไซต์ของคุณหรือไม่? แจ้งให้เราทราบประสบการณ์ของคุณในส่วนความคิดเห็น
หากต้องการปรับแต่งส่วนอื่นๆ ในไซต์ของคุณ โปรดดูบทแนะนำต่อไปนี้:
- วิธีเพิ่มฟิลด์อัปโหลดที่กำหนดเองไปยัง WooCommerce
- วิธีเพิ่มฟิลด์ที่กำหนดเองในการชำระเงิน
- คำแนะนำในการแก้ไขช่องชำระเงิน WooCommerce