ความสัมพันธ์ระหว่างพ่อแม่และลูกในประเภทโพสต์ที่กำหนดเอง
เผยแพร่แล้ว: 2020-08-18ใครไม่ต้องการมีเว็บไซต์ WordPress ที่เป็นระเบียบ? นี่คือเหตุผลที่ว่าทำไมประเภทโพสต์ที่กำหนดเองจึงมีความสำคัญ CTP ช่วยให้เราสามารถแยกข้อมูลและเข้าถึงได้ง่าย และอัปเดตเมื่อจำเป็น อย่างไรก็ตาม สิ่งที่ทำให้เราสามารถจัดระเบียบเนื้อหานี้และจัดลำดับชั้นได้คือ ความสัมพันธ์แบบพ่อแม่และลูกในประเภทโพสต์ที่กำหนดเอง แต่ก่อนที่เราจะพูดถึงความสัมพันธ์ระหว่างพ่อแม่และลูก เรามาเริ่มกันตั้งแต่ต้น
CPT ที่รอคอยมานาน
หากคุณไม่ทราบว่าเหตุใดการอัปเดต WordPress จึงมีความสำคัญ นี่คือตัวอย่างที่ชัดเจน หลังจากหลายปีแห่งการรอคอย เมื่อ WordPress 3.0 มาถึง ในที่สุดเราก็สามารถสร้างประเภทโพสต์ที่กำหนดเองได้ และนี่คือโอกาสที่คุณต้องการทราบโดยเร็วที่สุด ด้วยเหตุนี้ เว็บไซต์ WordPress จึงเปลี่ยนจากแพลตฟอร์มบล็อกธรรมดาไปเป็นระบบการจัดการการควบคุมที่มีประสิทธิภาพ ด้วยโค้ดเพียงไม่กี่บรรทัด เราก็สามารถมีโค้ดของเราเองได้
ก่อนที่เราจะพูดถึงความสัมพันธ์แบบพ่อแม่และลูกในประเภทโพสต์ที่กำหนดเอง ก่อนอื่นมาดูกันก่อนว่าประเภทโพสต์ที่กำหนดเองคืออะไร
CPT คืออะไร?
CPT ของประเภทโพสต์ที่กำหนดเองถือได้ว่าเป็นเนื้อหา คำว่า "โพสต์" อาจทำให้คุณสับสน เนื่องจากไม่ใช่บล็อกโพสต์แต่อย่างใด CPT สามารถเป็นเนื้อหาใดก็ได้ที่คุณต้องการ และ ไม่มีกฎเกณฑ์ที่เข้มงวด ในการกำหนด เห็นได้ชัดว่ามีประเภทโพสต์เริ่มต้นและกำหนดเอง ประเภทโพสต์เริ่มต้น ได้แก่ บล็อกโพสต์ หน้าและสิ่งที่แนบมา การแก้ไข และเมนูการนำทาง
ในทางกลับกัน ประเภทโพสต์ที่กำหนดเองช่วยให้ควบคุมการสร้าง จัดเก็บ และแก้ไขข้อมูลได้อย่างสร้างสรรค์มากขึ้น
คุณไม่ควรผสมประเภทโพสต์ที่กำหนดเองกับโพสต์ในบล็อก หากคุณต้องการสร้างโครงสร้างและลำดับชั้นสำหรับบทความในบล็อก คุณมีหมวดหมู่และหมวดหมู่ย่อยใน WordPress ไว้คอยบริการ
ใช้สำหรับประเภทโพสต์ที่กำหนดเอง
แม้ว่าจะมีประเภทโพสต์เริ่มต้นของ WordPress แต่บางคนก็ต้องการมากกว่านั้น ต่อไปนี้คือตัวอย่างบางส่วนที่ประเภทโพสต์ที่กำหนดเองมีประโยชน์:
- ไซต์รายการกิจกรรมพร้อมประเภทกิจกรรมและสถานที่
- รายการอสังหาริมทรัพย์
- ไซต์อีคอมเมิร์ซที่มีตัวเลือกผลิตภัณฑ์
- ระบบตั๋ว
- แกลลอรี่ออกแบบหรือตู้โชว์
โปรดทราบว่าแนวคิดเหล่านี้เป็นเพียงคำแนะนำบางส่วนเท่านั้น มีแนวคิดอีกมากมายที่คุณสามารถใช้ประเภทโพสต์ที่กำหนดเองได้ ดังนั้นปล่อยให้จินตนาการของคุณโลดแล่นไป
ความสัมพันธ์ระหว่างพ่อแม่และลูก
เมื่อคุณไปที่การตั้งค่าและเปิดใช้งานตัวเลือก "ลำดับชั้น" คุณสามารถทำให้โพสต์ของคุณมีลักษณะเหมือนเพจมากขึ้น และคุณจะสามารถสร้างความสัมพันธ์ระหว่างพ่อแม่และลูกได้ ตัวอย่างเช่น สมมติว่าคุณมีประเภทโพสต์ชื่อ "เครื่องดื่ม" และหน้าหลักเป็น "สุรา" และหน้าย่อยของ "วอดก้า" เมื่อคุณดูโพสต์ "วอดก้า" URL จะมีลักษณะดังนี้: yoursite.com/drink/liquor/vodka/
โดยพื้นฐานแล้ว การดำเนินการนี้จะมีผลกับโพสต์ของคุณในประเภทโพสต์เท่านั้น ไม่ส่งผลต่อโพสต์ประเภทอื่นๆ ที่เกี่ยวข้องกัน ตัวอย่างเช่น ประเภทโพสต์ของ "เครื่องดื่ม" จะไม่ใช่โพสต์ประเภทย่อยของ "อาหาร"
ตัวเลือกการจำกัด
เมื่อพูดถึงความสัมพันธ์ของโพสต์ WordPress เสนอให้น้อยมาก ที่จริงแล้ว ความสัมพันธ์ระหว่างพ่อแม่และลูก ในโพสต์ประเภทที่กำหนดเองเป็นความสัมพันธ์ประเภทเดียวที่ WordPress รองรับ อย่างไรก็ตาม อาจดูเหมือนท้าทายในการทำให้โพสต์แบบกำหนดเองเป็นพาเรนต์และการสร้างโพสต์แบบกำหนดเองแบบอื่นเป็นเด็ก

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


เพื่อเป็นการอธิบาย เราจะใช้ Neighborhood and Place แบบโพสต์-ประเภท และตอนนี้ก็ถึงเวลาสำหรับการเข้ารหัส:
/* Hook meta box to just the 'place' post type. */ add_action( 'add_meta_boxes_place', 'my_add_meta_boxes' ); /* Creates the meta box. */ function my_add_meta_boxes( $post ) { add_meta_box( 'my-place-parent', __( 'Neighborhood', 'example-textdomain' ), 'my_place_parent_meta_box', $post->post_type, 'side', 'core' ); } /* Displays the meta box. */ function my_place_parent_meta_box( $post ) { $parents = get_posts( array( 'post_type' => 'neighborhood', 'orderby' => 'title', 'order' => 'ASC', 'numberposts' => -1 ) ); if ( !empty( $parents ) ) { echo '<select name="parent_id" class="widefat">'; // !Important! Don't change the 'parent_id' name attribute. foreach ( $parents as $parent ) { printf( '<option value="%s"%s>%s</option>', esc_attr( $parent->ID ), selected( $parent->ID, $post->post_parent, false ), esc_html( $parent->post_title ) ); } echo '</select>'; } }อย่าลืมเปลี่ยนชื่อประเภทโพสต์เป็นประเภทโพสต์ของคุณเอง เพื่อให้ เข้าใจโค้ด ได้ดีขึ้นและใช้บนเว็บไซต์ของคุณ นี่เป็นอีกตัวอย่างหนึ่งใน GitHub ที่คุณอาจพบว่ามีประโยชน์
โพสต์ความสัมพันธ์
แม้ว่าความสัมพันธ์หลักและรองในประเภทโพสต์แบบกำหนดเองจะมีประโยชน์ แต่ก็มีข้อจำกัดค่อนข้างมาก หากคุณต้องการวิธีแก้ปัญหาที่ซับซ้อนกว่านี้ คุณจะต้องมองหาวิธีอื่น เป็นปลั๊กอินบางตัวที่สามารถช่วยให้คุณบรรลุผลที่คล้ายคลึงกันของความสัมพันธ์ในการโพสต์

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