ความรู้

วิธีสร้างหน้า 404 ใน wordpress

ขอจดไว้อีกอันนะครับกันลืม
1. ใน wordpress admin panel ดูใน Presentation–> Theme Editor ว่า theme ที่ใช้อยู่ มี 404 template รึเปล่า ถ้ามีก็แก้ข้อความที่คุณอยากใส่ในนั้นเลย จบ.?

2. ถ้าไม่มีก็สร้างไฟล์ 404.php ขึ้นมาเอง หรือ copy จาก default theme มาใส่ใน theme folder ที่คุณใช้อยู่ก็ได้?

3. ลองใส่ path มั่วๆ ที่ไม่มีในเว็บไซต์ของคุณดู ว่าหน้า 404 มันออกมายังไง ถ้าพอใจ ก็จบ. ถ้ามันดูประหลาดๆ ไม่เข้ากับ layout ของคุณ ก็แก้ต่อ?

4. มี 2 ทางเลือก คือ?

– แก้ header , sidebar และ footer ของไฟล์ 404.php ให้เข้ากับ layout ของ theme ที่คุณใช้อยู่ ก็คือ เขียนเอง ถ้าคุณรู้ว่า layout ของคุณมันจัดตำแหน่งกันยังไง (อันนี้ ก็ยากพอสมควร ต้องเช็ค div tag ให้ดีๆ ไม่งั้นเละ!)?

– หรือ copy ไฟล์ index.php ประจำ theme ของคุณมา แล้วลบทุกส่วนที่เกี่ยวข้องกับ posts และ comment ออกไป แล้วก็ใส่ข้อความที่อยากให้ปรากฏในหน้า 404 จากนั้นก็ save เป็นไฟล์ 404.php (อันนี้ ก็ชวนให้ตาลายเป็นอย่างยิ่ง กว่าจะหาเจอว่าต้องลบอะไรออกบ้าง!)?

นึกขึ้นมาได้ว่า เราก็ใช้ wordpress ทำ filo’s blog ไว้เหมือนกันนี่หว่า แต่ก็เอาไว้บ่นอย่างเดียว ไม่เคยลองตั้งค่าอย่างอื่น ได้โอกาสก็เลยทดลองทำซะเลย?

ผลปรากฎว่า… มึนครับ เพราะ theme ที่ใช้อยู่ไม่มี 404.php ให้ เลยต้องทำตามทุกขั้นตอนข้างบน?

แต่ช้าก่อน มันมีวิธีง่ายกว่านั้นอีก แค่ใส่โค้ด php เพิ่มเข้าไปบรรทัดเดียวก็ได้!!!?

อาศัยกลโกงนิดหน่อย คือ สร้าง page ขึ้นมาซักอันนึง เขียนข้อความที่คุณอยากบอกลงไป ก่อน publish ให้ใส่ในช่อง post slug เป็นชื่อ path อะไรก็ได้ที่คุณอยากให้มันมาแทน 404 Error สมมติว่าเป็น not-found?

ต่อมาก็เข้าไปที่ 404 template แล้วก็ใส่
บรรทัดเดียวสั้นๆ?
<?php header (“Location: /not-found/”); ?>

เปลี่ยน /not-found/ เป็น path ของหน้าที่คุณสร้างไว้นะครับ แค่นี้แหละ (อันนี้นึกขึ้นได้ หลังจากนั่งโง่อยู่ตั้งนาน)
ถ้า wordpress มันหา path อะไรไม่เจอ มันก็จะ ส่งไปหน้า not-found ที่เราสร้างไว้นั่นแหละครับ ลองดูนะครับว่าได้ผลรึเปล่า แต่ลองกับfilo’s blog แล้วมันได้ผล ติดนิดเดียว คือ มันมีคำว่า “Read Comment” ห้อยอยู่ตรงท้ายด้วย ทั้งๆที่ตอนสร้าง page ก็ตั้งค่าไม่ให้มันมี comment แล้วนะ

2 Comments

  1. มือใหม่อยู่ครับ แต่ก็กำลังพยายามอ่านและศึกษาอยู่

    ขอบคุณนะครับ มีประโยชน์ครับ

  2. ขอบคุณมากครับ สำหรับความรู้ กำลังหัดทำครับ

Leave a Reply

Your email address will not be published.