Your cart is currently empty!
[WordPress] กฏเหล็กการทำ Custom Post Type / Taxonomy
สืบเนื่องจาก โพสที่แล้ว มาเจอปัญหาตอนทำ Pagination อีก ว่าหน้า 2 ของ Taxonomy กดไปแล้วติด 404 Error เลยไปหาข้อมูลเพิ่มเติมเกี่ยวกับการทำ Custom Post Type, Taxonomy เลยเอามาแปลเป็นไทยเก็บไว้เผื่อเจอปัญหารอบหน้า
กฏข้อ 1) ห้ามใส่ – (Hyphen) ในชื่อ Taxonomy
อันนี้อันตรายมาก เพราะ Template Hierachy ของ Taxonomy มีอันนี้ taxonomy-{taxonomy}-{term}.php
ตัวอย่าง: ถ้าเราตั้งชื่อ Taxonomy ว่า book-category เราก็ต้องตั้งชื่อไฟล์ว่า taxonomy-book-category.php ทำให้ WordPress เข้าใจผิดว่าเป็น taxonomy ชื่อ book โดยมี term ว่า category อีกที
วิธีแก้: ใช้ _ คั่นคำ เวลาตั้งชื่อ taxonomy แทน เป็น book_category
กฎข้อ 2) แก้ CPT, Taxonomy แล้ว Flush Rewrite Rule อีกรอบเสมอ
ต่อให้แก้โค้ดสร้าง Custom Post Type, Taxonomy ใน PHP แต่ใน WordPress จะยังไม่ได้จับ Rewrite Rule ใหม่ ทำให้บางทีเปิดหน้าไปเจอ 404 Error
วิธีแก้: เข้า Settings > Permalink กดเซฟ 1 จึ้ก เป็นอันเสร็จพิธี (อย่าลืมว่า Rewrite Slug สวย ๆ จะทำงานเฉพาะ Permalink แบบ Post Name เท่านั้น
ปลั๊กอินสำหรับเช็ค Query ต่าง ๆ
อันนี้ไปเจอมาเอง ชื่อ WP Debug Bar มันจะทำให้เรากด Debug มุมขวาบนจอเพื่อดู Query ที่ส่งไปในระบบได้ ว่ามันติดมั้ย หรือเป็น 404 (วันนี้เจอเคสแบบ Rewrite Rule ใน Debar Bar ขึ้นว่าติด แต่หน้าจริง ๆ ขึ้น Not Found เลยคิดว่าเกี่ยวกับข้อ 1)
เทคนิคเพิ่มเติม: ถ้าติดปัญหาจริง ๆ เราสามารถไปใส่
define( 'SAVEQUERIES', true );
ใน wp-config.php ได้ แล้วใน Debug Bar เราจะเห็นเลยว่ามีการ Query อะไรไปหลังบ้านบ้าง และได้อะไรตอบมาบ้าง
by
Tags:
Leave a Reply