บันทึกการทำเว็บด้วยระบบ WordPress และการแก้ปัญหา

เรื่องมีอยู่ว่า รับผิดชอบเว็บไซต์ขนาดเล็กอยู่หนึ่งอัน เดิมที่สร้างด้วยระบบ Drupal 7.x เนื้อหาทั้งหมดมีแค่ 6 หน้าเพจ กับหน้า Tag คีย์เวิร์ด (Term) อีกไม่ถึง 10 อัน จากนั้นก็ปล่อยยาวไม่ได้อัพเดทอะไรอีกเลย (เจ้าของเว็บเขาพอใจแค่นี้)

แต่ช่วงหลังๆ มานี้ การอัพเดทแกนหลัก Core ของ Drupal มันออกมาเป็นระยะ ทั้งการแก้ไขความผิดพลาดทั่วไป (Bug) ทั้งแก้ปัญหาเรื่องความปลอดภัย (Security) กระบวนการอัพเดทมันค่อนข้างยุ่งยากนิดหน่อยกับเซิร์ฟเวอร์ที่เช่าใช้ ต้องอัพเดทผ่านโปรแกรม FTP เท่านั้น จึงเป็นเหตุให้ตัดสินใจเปลี่ยนระบบแกนหลัก จาก Drupal 7.x เป็น WordPress 5.x

สร้างเว็บใหม่บน WordPress 5.x

ในการย้ายข้อมูลในครั้งนี้ ไม่มีเทคนิคพิเศษอะไร เพราะมีเนื้อหาน้อยมาก เพียงแค่ 6 หน้าเพจ เลยก๊อปวางสร้างใหม่ทั้งหมด สำหรับหน้าแรกสร้างเป็น Page แล้วจัดหน้าด้วย Block ของ Gutenberg ที่มาใน WordPress นั้นเลย ทั้งการจัดคอลัมน์ในแต่ละส่วน การแทรกรูปภาพประกอบ ส่วนรูปภาพไฮไลท์ด้านบน และไอค่อนโซเชียลด้านล่าง ใช้ความสามารถของธีม Clean Blocks ของค่าย Catch Themes

แก้ปัญหาการใช้งาน WordPress กับ Cloudflare

เนื่องจากเว็บไซต์นี้ ใช้บริการ DNS+CDN ของ Cloudflare โดยเมื่อติดตั้ง WordPress เสร็จเรียบร้อย จำเป็นต้องลง Plugins : Flexible SSL for CloudFlare เพื่อการทำงานที่สมบูรณ์

WordPress แค่จะลบ Cache ต้องลง Plugins เพิ่ม

เมื่อเทียบกับที่เคยใช้ Drupal การล้าง Cache นั้น ตัว Drupal สามารถทำได้ง่ายมากเพียงเข้าไปที่เมนู Performance แตกต่างจาก WordPress ที่ต้องทำการติดตั้ง Plugins เพิ่มเติม เว็บนี้เลือกใช้ WP Fastest Cache

ปัญหา Slug หรือ URL alias ของระบบ WordPress ที่มีข้อจำกัด

ในระบบของ WordPress อนุญาตให้ผู้ใช้งานกำหนด Slug ได้เอง (หรือ URL alias ในระบบของ Drupal) แต่ใน WordPress 5.x เหมือนจะมีข้อจำกัดอยู่มากพอสมควร เช่น ไม่อนุญาตให้ใช้ Slug ที่เป็นภาษาไทย หรือ หากจะใช้ภาษาไทย ต้องใช้แบบที่ระบบสร้างให้เท่านั้นแก้ไขอะไรไม่ได้ ซึ่งจำนวนตัวอักษรใน Slug จำกัดไว้น้อยมาก และมันจะถูกตัดหายไป หาก Title ชื่อหน้าเพจมีขนาดยาว

ใช้งานสัญลักษณ์ / (Slash) แทรกใน Slug ไม่ได้เลย จะถูกเปลี่ยนเป็น - (Hyphen) ทั้งหมด ในจุดนี้คือ เว็บไซต์เดิม กำหนด URL alias มีการใส่ / แทรกอยู่ใน URL ด้วย จึงต้องลง Plugins : Redirection เพิ่มเติม เพื่อสามารถใช้งานได้ต่อเนื่องไม่เจอหน้า 404 Page not found

ปัญหา Slug ของ Category ซ้ำกับ Tag ไม่ได้

แม้ว่าจำนวน tag คีย์เวิร์ด (Taxonomy Terms) ในเว็บเก่านั้นจะมีเพียงไม่กี่อัน แต่ก็แยกเป็น Category กับ Tag เอาไว้ ระบบของ Drupal อนุญาตให้ใช้แม่แบบ (Pattern) เดียวกันได้ เช่น Category ท่องเที่ยว-เชียงใหม่ = topics/ท่องเที่ยว-เชียงใหม่ และ Tag ดอยอินทนนท์ = topics/ดอยอินทนนท์

ปรากฎว่าเมื่อกำหนดแม่แบบ Pattern เดียวกันใน WordPress 5.x (ในหน้า Settings > Permalinks) ในส่วนของ Category สามารถแสดงผลได้ปกติ แต่ในส่วนของ Tag ปรากฎหน้าเพจ 404 Page not found ต้องลบ Pattern Slug ดังกล่าวออกถึงจะใช้งานได้ แล้วใช้ Redirection ในการเปลี่ยนทางจากเว็บเดิม ให้มาแสดงผลตามเว็บใหม่

สรุป ข้อดี ข้อเสีย การสร้างเว็บไซต์ด้วยระบบ WordPress 5.x

ข้อดี WordPress 5.x

  • ตัวแกนหลักของ WordPress สามารถกดอัพเดทได้จากหน้าเว็บโดยตรง ไม่ต้องใช้โปรแกรม FTP
  • ใช้งานง่าย ติดตั้งง่าย ไม่ต้องเรียนรู้มากนัก

ข้อเสีย (ข้อจำกัด) WordPress 5.x

  • ไม่มีระบบแคช ลบแคช ต้องใช้ Plugins เสริม
  • ไม่มีระบบวิว (Views) ที่สามารถ Query ข้อมูลมาแสดงผลในหน้าเว็บเหมือน Drupal แต่ถ้าอยากใช้งาน ต้องซื้อ Plugins มาติดตั้งเพิ่มเติม
  • มีบล็อก พื้นที่สำหรับวาง Widget จำกัด
  • การใช้งาน Slug มีข้อจำกัดเยอะ ไม่อิสระ

อย่างไรก็ตาม แม้ว่าจะมีข้อจำกัดหลายอย่าง แต่การเลือกใช้งาน WordPress ก็เป็นตัวเลือกในการทำเว็บไซต์ที่ไม่ซับซ้อน