PlusMagi's Blog By Pitt Phunsanit Backend,Business,Database วิธีแปลง WordPress Terms ให้เป็น Title Case ด้วย SQL และ WP-CLI แบบมือโปร

วิธีแปลง WordPress Terms ให้เป็น Title Case ด้วย SQL และ WP-CLI แบบมือโปร

SQL

-- อัปเดตชื่อ Term ให้เป็น Title Case<br>UPDATE wp_terms<br>SET name = INITCAP(name) <br>WHERE name IS NOT NULL AND name != INITCAP(name);

คำสั่งนี้จะค้นหา Term ที่ชื่อปัจจุบันไม่ตรงกับรูปแบบ Title Case และทำการอัปเดตฟิลด์ name ให้เป็น Title Case ทันที

วิธีที่ 2: การใช้ WP-CLI สำหรับ Automation

หากคุณต้องทำกระบวนการนี้ซ้ำๆ หรือมี Term จำนวนมหาศาล การใช้ WP-CLI จะช่วยให้การทำงานเป็นไปแบบ Scriptable และสามารถรวมเข้ากับ Workflow อื่นๆ ได้

SQL

# ตัวอย่างแนวคิดการใช้ WP-CLI เพื่อจัดการ Term<br>wp term list --field=name --format=csv > terms_list.csv

หลังจากดึงข้อมูลออกมาแล้ว คุณสามารถเขียน Script (เช่น Python หรือ Bash) เพื่อวนลูป (Loop) ผ่านรายการ Term และใช้คำสั่ง API หรือฟังก์ชันที่เหมาะสมเพื่ออัปเดตค่า name และ slug อย่างเป็นระบบ

บทสรุปและข้อควรระวัง

การแปลง Term ให้เป็น Title Case ด้วย PostgreSQL และ WP-CLI เป็นกระบวนการที่ทรงประสิทธิภาพในการรักษาความสม่ำเสมอของข้อมูล (Data Consistency) ซึ่งเป็นรากฐานสำคัญของเว็บไซต์ระดับมืออาชีพ

ข้อควรจำ: การแก้ไขข้อมูลในระดับฐานข้อมูลโดยตรงมีความเสี่ยงสูงเสมอ หากคุณมีการอัปเดต name ของ Term คุณอาจต้องพิจารณาการจัดการ Redirects สำหรับ slug ที่มีการเปลี่ยนแปลงด้วย เพื่อให้แน่ใจว่า SEO Authority จะไม่สูญหาย

SQL

SELECT term_id, name, slug FROM wp_terms LIMIT 3;

วิธีที่ 1: การแก้ไขด้วย SQL (PostgreSQL)

สำหรับกรณีที่ต้องการความแม่นยำและรวดเร็วที่สุด เราจะใช้คำสั่ง UPDATE โดยใช้ฟังก์ชัน INITCAP() ของ PostgreSQL ซึ่งจะแปลงตัวอักษรแรกของทุกคำในสตริงให้เป็นตัวพิมพ์ใหญ่โดยอัตโนมัติ

⚠️ คำเตือน: ก่อนรันคำสั่งนี้ ควรสำรองข้อมูลฐานข้อมูลเสมอ (Backup Database)

SQL

-- อัปเดตชื่อ Term ให้เป็น Title Case<br>UPDATE wp_terms<br>SET name = INITCAP(name) <br>WHERE name IS NOT NULL AND name != INITCAP(name);

คำสั่งนี้จะค้นหา Term ที่ชื่อปัจจุบันไม่ตรงกับรูปแบบ Title Case และทำการอัปเดตฟิลด์ name ให้เป็น Title Case ทันที

วิธีที่ 2: การใช้ WP-CLI สำหรับ Automation

หากคุณต้องทำกระบวนการนี้ซ้ำๆ หรือมี Term จำนวนมหาศาล การใช้ WP-CLI จะช่วยให้การทำงานเป็นไปแบบ Scriptable และสามารถรวมเข้ากับ Workflow อื่นๆ ได้

SQL

# ตัวอย่างแนวคิดการใช้ WP-CLI เพื่อจัดการ Term<br>wp term list --field=name --format=csv > terms_list.csv

หลังจากดึงข้อมูลออกมาแล้ว คุณสามารถเขียน Script (เช่น Python หรือ Bash) เพื่อวนลูป (Loop) ผ่านรายการ Term และใช้คำสั่ง API หรือฟังก์ชันที่เหมาะสมเพื่ออัปเดตค่า name และ slug อย่างเป็นระบบ

บทสรุปและข้อควรระวัง

การแปลง Term ให้เป็น Title Case ด้วย PostgreSQL และ WP-CLI เป็นกระบวนการที่ทรงประสิทธิภาพในการรักษาความสม่ำเสมอของข้อมูล (Data Consistency) ซึ่งเป็นรากฐานสำคัญของเว็บไซต์ระดับมืออาชีพ

ข้อควรจำ: การแก้ไขข้อมูลในระดับฐานข้อมูลโดยตรงมีความเสี่ยงสูงเสมอ หากคุณมีการอัปเดต name ของ Term คุณอาจต้องพิจารณาการจัดการ Redirects สำหรับ slug ที่มีการเปลี่ยนแปลงด้วย เพื่อให้แน่ใจว่า SEO Authority จะไม่สูญหาย

“>

เมื่อเว็บไซต์ WordPress เติบโตขึ้น ปัญหาความไม่สม่ำเสมอของข้อมูล (Data Inconsistency) ในหมวดหมู่ (Categories) และแท็ก (Tags) เป็นสิ่งที่หลีกเลี่ยงไม่ได้ การที่บาง Term ถูกบันทึกด้วยรูปแบบ database design (lowercase) ขณะที่บาง Term ใช้ Database Design (Title Case) ไม่เพียงแต่ดูไม่เป็นมืออาชีพ แต่ยังส่งผลกระทบต่อการจัดอันดับ SEO (SEO Crawling) อย่างร้ายแรง การแก้ไขด้วยมือผ่านหน้าหลังบ้านจึงเป็นวิธีที่ใช้เวลามหาศาล


หลักการแก้ไขข้อมูลด้วย PostgreSQL

การแก้ไขข้อมูลจำนวนมากเช่นนี้ จำเป็นต้องใช้พลังของฐานข้อมูลโดยตรง (Database Level Manipulation) ซึ่งในบทความนี้เราจะใช้ PostgreSQL เนื่องจากเป็นระบบที่ทรงพลังและรองรับฟังก์ชันการจัดการสตริงขั้นสูงอย่าง INITCAP() เพื่อแปลงข้อความให้เป็น Title Case ได้อย่างแม่นยำ

โครงสร้างข้อมูลที่เกี่ยวข้อง

เราจะมุ่งเน้นไปที่ตาราง wp_terms ซึ่งเป็นที่เก็บข้อมูลหลักของคำศัพท์ (Term) โดยเฉพาะฟิลด์ name ที่เป็นชื่อที่แสดงผล (Display Name) ซึ่งเป็นเป้าหมายหลักในการแปลงรูปแบบ

SQL

SELECT term_id, name, slug FROM wp_terms LIMIT 3;

วิธีที่ 1: การแก้ไขด้วย SQL (PostgreSQL)

สำหรับกรณีที่ต้องการความแม่นยำและรวดเร็วที่สุด เราจะใช้คำสั่ง UPDATE โดยใช้ฟังก์ชัน INITCAP() ของ PostgreSQL ซึ่งจะแปลงตัวอักษรแรกของทุกคำในสตริงให้เป็นตัวพิมพ์ใหญ่โดยอัตโนมัติ

⚠️ คำเตือน: ก่อนรันคำสั่งนี้ ควรสำรองข้อมูลฐานข้อมูลเสมอ (Backup Database)

SQL

-- อัปเดตชื่อ Term ให้เป็น Title Case<br>UPDATE wp_terms<br>SET name = INITCAP(name) <br>WHERE name IS NOT NULL AND name != INITCAP(name);

คำสั่งนี้จะค้นหา Term ที่ชื่อปัจจุบันไม่ตรงกับรูปแบบ Title Case และทำการอัปเดตฟิลด์ name ให้เป็น Title Case ทันที

วิธีที่ 2: การใช้ WP-CLI สำหรับ Automation

หากคุณต้องทำกระบวนการนี้ซ้ำๆ หรือมี Term จำนวนมหาศาล การใช้ WP-CLI จะช่วยให้การทำงานเป็นไปแบบ Scriptable และสามารถรวมเข้ากับ Workflow อื่นๆ ได้

SQL

# ตัวอย่างแนวคิดการใช้ WP-CLI เพื่อจัดการ Term<br>wp term list --field=name --format=csv > terms_list.csv

หลังจากดึงข้อมูลออกมาแล้ว คุณสามารถเขียน Script (เช่น Python หรือ Bash) เพื่อวนลูป (Loop) ผ่านรายการ Term และใช้คำสั่ง API หรือฟังก์ชันที่เหมาะสมเพื่ออัปเดตค่า name และ slug อย่างเป็นระบบ

บทสรุปและข้อควรระวัง

การแปลง Term ให้เป็น Title Case ด้วย PostgreSQL และ WP-CLI เป็นกระบวนการที่ทรงประสิทธิภาพในการรักษาความสม่ำเสมอของข้อมูล (Data Consistency) ซึ่งเป็นรากฐานสำคัญของเว็บไซต์ระดับมืออาชีพ

ข้อควรจำ: การแก้ไขข้อมูลในระดับฐานข้อมูลโดยตรงมีความเสี่ยงสูงเสมอ หากคุณมีการอัปเดต name ของ Term คุณอาจต้องพิจารณาการจัดการ Redirects สำหรับ slug ที่มีการเปลี่ยนแปลงด้วย เพื่อให้แน่ใจว่า SEO Authority จะไม่สูญหาย

SQL

SELECT term_id, name, slug FROM wp_terms LIMIT 3;

วิธีที่ 1: การแก้ไขด้วย SQL (PostgreSQL)

สำหรับกรณีที่ต้องการความแม่นยำและรวดเร็วที่สุด เราจะใช้คำสั่ง UPDATE โดยใช้ฟังก์ชัน INITCAP() ของ PostgreSQL ซึ่งจะแปลงตัวอักษรแรกของทุกคำในสตริงให้เป็นตัวพิมพ์ใหญ่โดยอัตโนมัติ

⚠️ คำเตือน: ก่อนรันคำสั่งนี้ ควรสำรองข้อมูลฐานข้อมูลเสมอ (Backup Database)

SQL

-- อัปเดตชื่อ Term ให้เป็น Title Case<br>UPDATE wp_terms<br>SET name = INITCAP(name) <br>WHERE name IS NOT NULL AND name != INITCAP(name);

คำสั่งนี้จะค้นหา Term ที่ชื่อปัจจุบันไม่ตรงกับรูปแบบ Title Case และทำการอัปเดตฟิลด์ name ให้เป็น Title Case ทันที

วิธีที่ 2: การใช้ WP-CLI สำหรับ Automation

หากคุณต้องทำกระบวนการนี้ซ้ำๆ หรือมี Term จำนวนมหาศาล การใช้ WP-CLI จะช่วยให้การทำงานเป็นไปแบบ Scriptable และสามารถรวมเข้ากับ Workflow อื่นๆ ได้

SQL

# ตัวอย่างแนวคิดการใช้ WP-CLI เพื่อจัดการ Term<br>wp term list --field=name --format=csv > terms_list.csv

หลังจากดึงข้อมูลออกมาแล้ว คุณสามารถเขียน Script (เช่น Python หรือ Bash) เพื่อวนลูป (Loop) ผ่านรายการ Term และใช้คำสั่ง API หรือฟังก์ชันที่เหมาะสมเพื่ออัปเดตค่า name และ slug อย่างเป็นระบบ

บทสรุปและข้อควรระวัง

การแปลง Term ให้เป็น Title Case ด้วย PostgreSQL และ WP-CLI เป็นกระบวนการที่ทรงประสิทธิภาพในการรักษาความสม่ำเสมอของข้อมูล (Data Consistency) ซึ่งเป็นรากฐานสำคัญของเว็บไซต์ระดับมืออาชีพ

ข้อควรจำ: การแก้ไขข้อมูลในระดับฐานข้อมูลโดยตรงมีความเสี่ยงสูงเสมอ หากคุณมีการอัปเดต name ของ Term คุณอาจต้องพิจารณาการจัดการ Redirects สำหรับ slug ที่มีการเปลี่ยนแปลงด้วย เพื่อให้แน่ใจว่า SEO Authority จะไม่สูญหาย

“>

เมื่อเว็บไซต์ WordPress เติบโตขึ้น ปัญหาความไม่สม่ำเสมอของข้อมูล (Data Inconsistency) ในหมวดหมู่ (Categories) และแท็ก (Tags) เป็นสิ่งที่หลีกเลี่ยงไม่ได้ การที่บาง Term ถูกบันทึกด้วยรูปแบบ database design (lowercase) ขณะที่บาง Term ใช้ Database Design (Title Case) ไม่เพียงแต่ดูไม่เป็นมืออาชีพ แต่ยังส่งผลกระทบต่อการจัดอันดับ SEO (SEO Crawling) อย่างร้ายแรง การแก้ไขด้วยมือผ่านหน้าหลังบ้านจึงเป็นวิธีที่ใช้เวลามหาศาล


หลักการแก้ไขข้อมูลด้วย PostgreSQL

การแก้ไขข้อมูลจำนวนมากเช่นนี้ จำเป็นต้องใช้พลังของฐานข้อมูลโดยตรง (Database Level Manipulation) ซึ่งในบทความนี้เราจะใช้ PostgreSQL เนื่องจากเป็นระบบที่ทรงพลังและรองรับฟังก์ชันการจัดการสตริงขั้นสูงอย่าง INITCAP() เพื่อแปลงข้อความให้เป็น Title Case ได้อย่างแม่นยำ

โครงสร้างข้อมูลที่เกี่ยวข้อง

เราจะมุ่งเน้นไปที่ตาราง wp_terms ซึ่งเป็นที่เก็บข้อมูลหลักของคำศัพท์ (Term) โดยเฉพาะฟิลด์ name ที่เป็นชื่อที่แสดงผล (Display Name) ซึ่งเป็นเป้าหมายหลักในการแปลงรูปแบบ

SQL

SELECT term_id, name, slug FROM wp_terms LIMIT 3;

วิธีที่ 1: การแก้ไขด้วย SQL (PostgreSQL)

สำหรับกรณีที่ต้องการความแม่นยำและรวดเร็วที่สุด เราจะใช้คำสั่ง UPDATE โดยใช้ฟังก์ชัน INITCAP() ของ PostgreSQL ซึ่งจะแปลงตัวอักษรแรกของทุกคำในสตริงให้เป็นตัวพิมพ์ใหญ่โดยอัตโนมัติ

⚠️ คำเตือน: ก่อนรันคำสั่งนี้ ควรสำรองข้อมูลฐานข้อมูลเสมอ (Backup Database)

SQL

-- อัปเดตชื่อ Term ให้เป็น Title Case<br>UPDATE wp_terms<br>SET name = INITCAP(name) <br>WHERE name IS NOT NULL AND name != INITCAP(name);

คำสั่งนี้จะค้นหา Term ที่ชื่อปัจจุบันไม่ตรงกับรูปแบบ Title Case และทำการอัปเดตฟิลด์ name ให้เป็น Title Case ทันที

วิธีที่ 2: การใช้ WP-CLI สำหรับ Automation

หากคุณต้องทำกระบวนการนี้ซ้ำๆ หรือมี Term จำนวนมหาศาล การใช้ WP-CLI จะช่วยให้การทำงานเป็นไปแบบ Scriptable และสามารถรวมเข้ากับ Workflow อื่นๆ ได้

SQL

# ตัวอย่างแนวคิดการใช้ WP-CLI เพื่อจัดการ Term<br>wp term list --field=name --format=csv > terms_list.csv

หลังจากดึงข้อมูลออกมาแล้ว คุณสามารถเขียน Script (เช่น Python หรือ Bash) เพื่อวนลูป (Loop) ผ่านรายการ Term และใช้คำสั่ง API หรือฟังก์ชันที่เหมาะสมเพื่ออัปเดตค่า name และ slug อย่างเป็นระบบ

บทสรุปและข้อควรระวัง

การแปลง Term ให้เป็น Title Case ด้วย PostgreSQL และ WP-CLI เป็นกระบวนการที่ทรงประสิทธิภาพในการรักษาความสม่ำเสมอของข้อมูล (Data Consistency) ซึ่งเป็นรากฐานสำคัญของเว็บไซต์ระดับมืออาชีพ

ข้อควรจำ: การแก้ไขข้อมูลในระดับฐานข้อมูลโดยตรงมีความเสี่ยงสูงเสมอ หากคุณมีการอัปเดต name ของ Term คุณอาจต้องพิจารณาการจัดการ Redirects สำหรับ slug ที่มีการเปลี่ยนแปลงด้วย เพื่อให้แน่ใจว่า SEO Authority จะไม่สูญหาย