วิธีการแก้ไขข้อผิดพลาด 404 ประเภท Post Custom ใน WordPress

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


ด้านล่างฉันแสดงรายการปัญหาทั่วไปที่พบโดยทั่วไปเกี่ยวกับประเภทโพสต์ที่กำหนดเองและสาเหตุที่พวกเขาอาจได้รับข้อผิดพลาดเหล่านี้ หวังว่าพวกเขาจะช่วยคนอย่างน้อยสองสามคนที่นั่น.

1. ตรวจสอบการตั้งค่าลิงก์ของคุณ

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

สารละลาย:

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

การกลับไปกลับมาได้ช่วยแก้ไขข้อผิดพลาดของฉันและฉันประสบความสำเร็จเป็นอย่างมากด้วยวิธีนี้.

ทีนี้ในบางเซิร์ฟเวอร์หากการอนุญาตของคุณไม่ได้ตั้งอย่างถูกต้องอาจไม่ทำงานและคุณอาจต้องอัปเดตไฟล์. htaccess ด้วยตนเอง ในการทำเช่นนี้คุณจะต้องลงชื่อเข้าใช้เว็บไซต์ของคุณผ่าน FTP หรือ SFTP และเบราว์เซอร์ไปยังไดเรกทอรีราก WordPress ของคุณ (ที่เดียวกับที่ไฟล์ wp-config.php และโฟลเดอร์ wp-content ของคุณ) ที่นี่คุณควรหาไฟล์ชื่อ. htaccess ซึ่งคุณสามารถแก้ไขได้ (หากคุณไม่เห็นให้แน่ใจว่าโปรแกรม FTP ของคุณมีตัวเลือกในการแสดงไฟล์ที่ซ่อนอยู่เปิดใช้งานและหากไม่มีไฟล์ก็จะสร้างขึ้นมา) ตอนนี้ตรวจสอบให้แน่ใจว่าไฟล์มีรหัส WordPress หลักตามที่ระบุไว้ใน WordPress เอกสาร, ซึ่งมีลักษณะเช่นนี้:

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^ index \ .php $ - [L]
RewriteCond% {REQUEST_FILENAME}! -f
RewriteCond% {REQUEST_FILENAME}! -d
RewriteRule /index.php [L]

# END WordPress

สิ่งสำคัญ: หากคุณกำลังแก้ไขไฟล์. htaccess ที่มีอยู่ตรวจสอบให้แน่ใจว่าได้สำรองไฟล์ไว้ในคอมพิวเตอร์ของคุณก่อนเพียงแค่ใส่ซองเข้าไปในคอมพิวเตอร์.

2. ตรวจสอบความขัดแย้งของกระสุน (มีหน้าเว็บที่มีกระสุนเดียวกับประเภทโพสต์ของคุณ)

อีกสิ่งหนึ่งที่อาจทำให้เกิดข้อผิดพลาด 404 ก็คือคุณมีหน้าหลักเพื่อแสดงโพสต์ประเภทโพสต์ของคุณและมีบุ้งเช่นเดียวกับประเภทโพสต์เอกพจน์กระสุนจริงของคุณ ตัวอย่างเช่นหากคุณมีประเภทโพสต์ชื่อ“ พอร์ตโฟลิโอ” และคุณยังมีหน้า“ พอร์ตโฟลิโอหลัก” ทั้งคู่พร้อมกับ“ พอร์ตบุ๊ก” (กล่าวอีกนัยหนึ่งเพื่อเข้าถึงโพสต์พอร์ตโฟลิโอคุณจะไปที่ site.com/portfolio/sample-) โพสต์) สิ่งนี้จะสร้างความขัดแย้งที่ทำให้เกิดข้อผิดพลาด 404 ในโพสต์ประเภทโพสต์เอกพจน์ของคุณ นั่นเป็นเหตุผลที่คุณมักพบว่าประเภทโพสต์ผลงานใช้ “โครงการ” กระสุนหรือ “รายการผลงาน” สำหรับกระสุนเอกพจน์.

สารละลาย:

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

3. กฎล้างอัตโนมัติเขียนซ้ำ (สำหรับนักพัฒนา)

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

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

// รหัสสำหรับธีม
add_action ('after_switch_theme', 'flush_rewrite_rules');

// รหัสสำหรับปลั๊กอิน
register_deactivation_hook (__FILE__, 'flush_rewrite_rules');
register_activation_hook (__FILE__, 'myplugin_flush_rewrites');
ฟังก์ชัน myplugin_flush_rewrites () {
// เรียกฟังก์ชั่นการลงทะเบียน CPT ของคุณที่นี่ (มันควรจะติดอยู่ใน 'init')
myplugin_custom_post_types_registration ();
flush_rewrite_rules ();
}

มีข้อผิดพลาดหรือวิธีแก้ไขปัญหาอื่น?

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

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map