วิธีสร้างประเภทโพสต์ที่กำหนดเองของ 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;
}

ดังนั้นหากคุณวางรหัสย่อบนหน้า:

รหัสย่อเพื่อแสดงCTP

คุณจะเห็นผลลัพธ์:

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

บทสรุป

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

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

คุณได้ลองสร้างประเภทโพสต์แบบกำหนดเองบนไซต์ของคุณหรือไม่? แจ้งให้เราทราบประสบการณ์ของคุณในส่วนความคิดเห็น

หากต้องการปรับแต่งส่วนอื่นๆ ในไซต์ของคุณ โปรดดูบทแนะนำต่อไปนี้:

  • วิธีเพิ่มฟิลด์อัปโหลดที่กำหนดเองไปยัง WooCommerce
  • วิธีเพิ่มฟิลด์ที่กำหนดเองในการชำระเงิน
  • คำแนะนำในการแก้ไขช่องชำระเงิน WooCommerce