วิธีการยกเลิกการเลือกหมวดหมู่สำหรับโพสต์โดยไม่ต้องใช้ปลั๊กอิน
เผยแพร่แล้ว: 2020-10-05“หมวดหมู่” เป็นอนุกรมวิธานเริ่มต้นใน WordPress ตัวดำเนินการสามารถใช้หมวดหมู่เพื่อจัดเรียงและจัดกลุ่มโพสต์ในบล็อกออกเป็นส่วนต่างๆ หมวดหมู่ยังช่วยให้ผู้เยี่ยมชมไปยังไซต์ต่างๆ ได้เร็วขึ้น ตลอดจนรู้ว่าเว็บไซต์ของคุณเกี่ยวกับหัวข้อใดบ้าง ผู้ดำเนินการเว็บไซต์สามารถใช้การดำเนินการพื้นฐานกับหมวดหมู่และโพสต์ด้วยแผงผู้ดูแลระบบ WordPress ได้ เช่นเดียวกับการใช้ปลั๊กอิน WordPress เพื่อจัดการโพสต์ในลักษณะต่างๆ
- 1. ทำความเข้าใจว่า WordPress จัดการกับคำขอทางเว็บจากลูกค้าอย่างไร?
- 2. ตารางสำคัญสำหรับการจัดการแบบกลุ่มของโพสต์ WordPress
- 3. ย้ายโพสต์ทั้งหมดจากหมวดหมู่ไปยังหมวดหมู่อื่น – ใช้คำสั่ง SQL
- 3.1. รับรายการ ID ของโพสต์ทั้งหมดที่อยู่ในหมวดหมู่เฉพาะ
- 3.2. รับ ID ของหมวดหมู่ใหม่
- 3.3. อัปเดตโพสต์ด้วยรายการ ID ที่ระบุ
- 4. คำพูดสุดท้าย
อย่างไรก็ตาม การใช้ปลั๊กอินมากเกินไปสำหรับไซต์ WordPress ไม่ควรเป็นตัวเลือก เนื่องจากอาจทำให้เกิดปัญหาด้านประสิทธิภาพและปัญหาด้านความปลอดภัยได้ ในบทความนี้ มาเรียนรู้เกี่ยวกับ วิธียกเลิกการเลือกหมวดหมู่สำหรับโพสต์จำนวนมากโดยไม่ต้องใช้ปลั๊กอิน
ทำความเข้าใจว่า WordPress จัดการกับคำขอทางเว็บจากลูกค้าอย่างไร?
การทำความเข้าใจว่าเว็บเซิร์ฟเวอร์จัดการกับคำขอจากลูกค้าอย่างไรจึงจำเป็นต่อการจัดการไซต์ WordPress การดำเนินการโดยละเอียดรวมถึงการยกเลิกการเลือกโพสต์จำนวนมากในหมวดหมู่
เว็บเซิร์ฟเวอร์ทั่วไปคือ LAMP stack (Linux – Apache – MySQL/MariaDB – PHP) แนวคิดที่เทียบเท่ากันอื่นๆ สามารถพบได้ในแพลตฟอร์มเว็บเซิร์ฟเวอร์อื่นๆ

LAMP สแต็คการสื่อสารระหว่างเซิร์ฟเวอร์กับไคลเอนต์
1. ลูกค้าส่งคำขอ HTTP เพื่อขอข้อมูลเว็บจากเว็บเซิร์ฟเวอร์
2. เว็บเซิร์ฟเวอร์ได้รับคำขอ HTTP ที่ถูกต้องจากลูกค้า (หลังจากผ่านกฎไฟร์วอลล์):
- วิเคราะห์โครงสร้างของคำขอ HTTP ระบุหน้า HTML ที่ลูกค้าต้องการ
- การแยกวิเคราะห์คำขอไปยังเลเยอร์สคริปต์ (PHP)
3. เลเยอร์สคริปต์ PHP:
- สอบถามฐานข้อมูล รับข้อมูลที่จำเป็นทั้งหมด
- รวมกับซอร์สโค้ดในธีมเพื่อแสดงหน้าเว็บแบบไดนามิก
- กลับไปที่เว็บเซิร์ฟเวอร์
4. เว็บเซิร์ฟเวอร์:
- สร้างข้อความตอบกลับ HTTP
- ส่งข้อความตอบกลับ HTTP ไปยังไคลเอนต์
5. ไคลเอนต์ได้รับข้อความตอบกลับ HTTP จากเว็บเซิร์ฟเวอร์ จากนั้นแสดงข้อมูลเว็บในเว็บเบราว์เซอร์
ตารางที่สำคัญสำหรับการจัดการโพสต์จำนวนมากของ WordPress
มีชุดตารางอยู่ในสคีมาของฐานข้อมูลของไซต์ WordPress สคีมาแตกต่างกันไปในแต่ละไซต์ อย่างไรก็ตาม เมื่อจัดการกับโพสต์ของไซต์ WordPress ตารางเหล่านี้ควรอยู่ภายใต้ความกังวลที่สูงขึ้น:
| ชื่อโต๊ะ | คำอธิบาย |
wp_postmeta | จัดเก็บข้อมูลที่เกี่ยวข้องกับเนื้อหาเพิ่มเติมของไซต์ WordPress |
wp_post | จัดเก็บข้อมูลที่เกี่ยวข้องกับเนื้อหาที่สำคัญทั้งหมดของไซต์ WordPress |
wp_term_relationships | จัดเก็บข้อมูลการเชื่อมต่อทั้งหมดที่เชื่อมโยงไปยังหมวดหมู่ แท็ก ลิงก์ ข้อมูลจากตารางนี้ทำหน้าที่เป็นแผนที่ระหว่างเงื่อนไขของวัตถุและข้อกำหนด |
wp_term_taxonomy | เก็บข้อมูลเพิ่มเติมสำหรับตาราง wp_terms |
wp_term | จัดเก็บหมวดหมู่ แท็กสำหรับโพสต์ เพจ และลิงก์ |
ย้ายโพสต์ทั้งหมดจากหมวดหมู่ไปยังหมวดหมู่อื่น – ใช้คำสั่ง SQL
ในการจัดการฐานข้อมูล WordPress โดยตรง ตัวดำเนินการจำเป็นต้องตัดสินใจว่า DBMS (ระบบจัดการฐานข้อมูล) ใดที่จะใช้ เนื่องจากสภาพแวดล้อมของแล็บใช้ LAMP stack เป็นแพลตฟอร์มเว็บ ผู้ปฏิบัติงานสามารถทำงานกับฐานข้อมูล WordPress ได้โดยใช้ phpMyAdmin, ปลั๊กอิน WordPress, แม้แต่ไคลเอนต์ MySQL (คำสั่งเทอร์มินัล) ผ่านเซสชัน SSH … ในสถานการณ์นี้ DBMS คือ MySQL WorkBench เพื่อจุดประสงค์ในการแสดงภาพประกอบที่ดีขึ้น
ก่อนที่จะดำเนินการเปลี่ยนแปลงใดๆ ในฐานข้อมูล WordPress ขอแนะนำให้สำรองข้อมูลไซต์ WordPress อย่างครบถ้วน การสำรองข้อมูลเต็มรูปแบบนี้รวมถึงซอร์สโค้ด WordPress (ธีม, ไฟล์ PHP …) และโครงสร้างฐานข้อมูล เพื่อวัตถุประสงค์ในอุดมคติ ผู้ให้บริการสามารถสร้างการสำรองข้อมูลเต็มรูปแบบของโฮสต์ทั้งหมดที่รันไซต์ WordPress

ต่อไปนี้คือสคริปต์ SQL ที่สมบูรณ์ในการย้ายโพสต์ทั้งหมดจากหมวดหมู่ "ไม่มีหมวดหมู่" ไปยังหมวดหมู่ "แรงบันดาลใจ"
SET @listID = (
เลือก GROUP_CONCAT(ID) จาก wp_posts
โดยที่ post_type="โพสต์"
และ post_status = "เผยแพร่"
และ ID ใน (
เลือก object_id จาก wp_term_relationships
โดยที่term_taxonomy_id IN (
เลือก term_taxonomy_id จาก wp_term_taxonomy
โดยที่อนุกรมวิธาน = "หมวดหมู่"
และ term_id ใน (
เลือก t.term_id จาก wp_terms t
WHERE t.name="ไม่มีหมวดหมู่"
)
)
)
);
SET @newCategoryID = (
เลือก t.term_id จาก wp_terms t ที่ไหน t.name='แรงบันดาลใจ'
);
เลือก @newCategoryID;
ตั้งค่า @sqlCmd = CONCAT(
'อัปเดต wp_term_relationships tr',
'SET tr.term_taxonomy_id = ', @newCategoryID , ' ',
'WHERE tr.object_id IN (', @listID , ');'
);
เลือก @sqlCmd;
เตรียม stmt จาก @sqlCmd;
ตั้งค่า SQL_SAFE_UPDATES = 0;
ดำเนินการ stmt;
ตั้งค่า SQL_SAFE_UPDATES = 1;
จัดสรร เตรียม stmt;สคริปต์รายละเอียดจะอธิบายดังนี้
รับรายการ ID ของโพสต์ทั้งหมดที่อยู่ในหมวดหมู่เฉพาะ
ในการสาธิตนี้ เราจะสาธิตวิธียกเลิกการเลือกโพสต์ทั้งหมดจากหมวดหมู่ "ไม่มีหมวดหมู่" เป็นกลุ่ม จากนั้นย้ายโพสต์ไปยังหมวดหมู่ใหม่ที่ชื่อ "แรงบันดาลใจ"
จากแผงผู้ดูแลระบบ WordPress 3 โพสต์เหล่านี้ถูกจัดเรียงในหมวดหมู่ "ไม่มีหมวดหมู่"

คำสั่ง SQL ด้านล่างจะดึง ID โพสต์ทั้งหมดของหมวดหมู่ที่ชื่อว่า "Uncategorized"
SET @listID = (
เลือก GROUP_CONCAT(ID) จาก wp_posts
โดยที่ post_type="โพสต์"
และ post_status = "เผยแพร่"
และ ID ใน (
เลือก object_id จาก wp_term_relationships
โดยที่term_taxonomy_id IN (
เลือก term_taxonomy_id จาก wp_term_taxonomy
โดยที่อนุกรมวิธาน = "หมวดหมู่"
และ term_id ใน (
เลือก t.term_id จาก wp_terms t
WHERE t.name="ไม่มีหมวดหมู่"
)
)
)
); ตรวจสอบค่าของ @listID :

รับ ID ของหมวดหมู่ใหม่
SET @newCategoryID = (
เลือก t.term_id จาก wp_terms t ที่ไหน t.name='แรงบันดาลใจ'
); ตรวจสอบค่าของ @newCategoryID :

อัปเดตโพสต์ด้วยรายการ ID ที่ระบุ
ขั้นแรก สร้างคำสั่ง SQL และเก็บไว้ในตัวแปร @sqlCmd
/* คำสั่งที่คาดไว้ในตัวแปร @sqlCmd:
อัพเดท wp_term_relationships tr
SET tr.term_taxonomy_id = 5
WHERE tr.object_id IN (131,132,133);
*/
ตั้งค่า @sqlCmd = CONCAT(
'อัปเดต wp_term_relationships tr',
'SET tr.term_taxonomy_id = ', @newCategoryID , ' ',
'WHERE tr.object_id IN (', @listID , ');'
);ประการที่สอง ตรวจสอบ:

สุดท้าย ออกคำสั่ง SQL ที่เก็บไว้ในตัวแปร @sqlCmd ด้วยคำสั่งด้านล่าง:
เตรียม stmt จาก @sqlCmd; ตั้งค่า SQL_SAFE_UPDATES = 0; ดำเนินการ stmt; ตั้งค่า SQL_SAFE_UPDATES = 1; จัดสรร เตรียม stmt;
นี่คือผลลัพธ์:

คำสุดท้าย
มีหลายวิธีในการยกเลิกการเลือกหมวดหมู่สำหรับโพสต์ในไซต์ WordPress ไม่ว่าจะใช้ปลั๊กอินเพื่อโต้ตอบผ่านเว็บอินเตอร์เฟส หรือใช้คำสั่ง SQL เพื่อสร้างผลกระทบโดยตรงต่อฐานข้อมูล WordPress ผู้ปฏิบัติงานควรเข้าใจว่าสิ่งใดคือวัตถุสำคัญที่กำลังถูกแก้ไข
หวังว่าบทความนี้จะทำให้คุณมีทางเลือกมากขึ้นในการยกเลิกการเลือกหมวดหมู่สำหรับโพสต์จำนวนมาก เพื่อให้ได้เทคนิคที่เป็นประโยชน์มากขึ้นใน WordPress ให้ติดตามบทความของเราต่อไป!
หากคุณต้องการใช้ปลั๊กอินเพื่อยกเลิกการเลือกหมวดหมู่สำหรับโพสต์จำนวนมากได้ง่ายขึ้น ให้อ้างอิงกับบทความนี้
