Autosave คืออะไรใน WordPress

autosave ใน WordPress นั้น คือการบันทึกบทความที่เราทำการแก้ไขโดยอัตโนมัติทุก ๆ ช่วงเวลาที่กำหนด ค่าเริ่มต้นคือ 60 วินาที ตัวเลขในการระบุเวลา มีหน่วยเป็นวินาที แต่เราสามารถกำหนดค่าเป็นอย่างอื่นได้ โดยกำหนดไว้ใน wp-config.php

เมื่อมีการบันทึกอัตโนมัติ WordPress จะสร้างเรคอร์ด (record) ในฐานข้อมูลเพิ่มขึ้นมาอีก 1 เรคอร์ด/บทความ ดังนั้นข้อมูลสูงสุดของ autosave คือ 1 เรคอร์ด/บทความ ซึ่งจะต่างจาก revision ซึ่งหากเราไม่กำหนด มันจะสร้างขึ้นมาเรื่อย ๆ ตามที่เราได้ทำการแก้ไขข้อมูล
Continue reading →

ควบคุม Revisions ด้วยปลั๊กอิน

Revisions คือข้อมูลประวัติการแก้ไขเอกสาร ทั้ง Post และ Page ค่าเริ่มต้นของ WordPress ก็คือจะเก็บข้อมูลที่มีการแก้ไขไว้ และผมเคยเขียนเกี่ยวกับเรื่องนี้แล้ว ทั้งการเปิด/ปิด Post Revisions และการลบข้อมูล Revisions ต่าง ๆ ออกจากบล็อก

คราวนี้ ผมจะมาพูดถึงเรื่องการใช้ปลั๊กอินเข้าช่วยในการควบคุม Revisions ให้เป็นไปตามที่เราต้องการ ปลั๊กอินที่เราจะนำมาใช้นี้คือ Revision Control ปลั๊กอินตัวนี้ ใช้ควบคุม Revisions ทั้งของ Post และ Page เป็นไปตามที่เราต้องการได้ คือ กำหนดค่าโดยรวมหรือกำหนดเฉพาะ Post/Page ได้อีกด้วย
Continue reading →

Post Revisions

Post Revisions คือ ข้อมูลประวัติการแก้ไขบทความ ซึ่งใน WordPress มีตั้งแต่ 2.6 ตามที่ได้เขียนไปแล้วในบทความก่อน ๆ นั้น โดยจะเป็นค่าเริ่มต้นในการใช้ WordPress คือ มันจะเก็บข้อมูลการแก้ไขบทความไปเรื่อยๆ ซึ่งมีผลทำให้ฐานข้อมูลใหญ่ขึ้นแน่นอน การปิดการใช้ Post Revisions ทำดังนี้

define(‘WP_POST_REVISIONS’, false);

นำโค้ดนี้ไปใส่ไว้ใน wp-config.php มันก็จะยกเลิกการเก็บข้อมูลการแก้ไขบทความแล้วหล่ะครับ (อันนี้ก็พูดไปแล้ว)

การจะทำให้ WordPress กลับมาใช้ Post Revisions ตามเดิม ก็เปลี่ยนจาก false เป็น true หรือไม่ ก็ลบโค้ดนั้นทิ้ง ทุกอย่างก็จะกลับมาเหมือนเดิมแล้ว แต่มีอีกสิ่งหนึ่งที่น่าสนใจก็คือ การกำหนดได้ว่า จะให้มันเก็บข้อมูลไว้ได้กี่ครั้ง คือเราสามารถควบคุม WordPress ให้เก็บข้อมูลการแก้ไขบทความ เป็นจำนวนครั้งได้ ทำดังนี้

define(‘WP_POST_REVISIONS’, จำนวนครั้ง);

นำโค้ดนี้ไปใส่ไว้ใน wp-config.php โดยตรง “จำนวนครั้ง” นั้นให้เปลี่ยนเป็นจำนวนตัวเลขที่คุณต้องการ เช่น

define(‘WP_POST_REVISIONS’, 3);

เป็นการเก็บประวัติการแก้ไขไว้เพียง 3 ครั้งเท่านั้น การใส่เลข “0” (ศูนย์) จะเป็นการปิดการเก็บข้อมูล (มีค่าเท่ากับ false) ซึ่งการเปลี่ยนแปลงนี้จะมีผลกับข้อมูลปัจจุบัน และข้อมูลเก่าที่มีการแก้ไขเท่านั้น หมายความว่าอย่างไร?

กล่าวคือ ข้อมูลเดิมทำการแก้ไขมาแล้ว 10 แล้วทำการกำหนดให้เก็บประวัติไว้เพียง 3 ครั้ง ดังนั้น บทความที่จะเขียนใหม่ต่อไป มันจะเก็บประวัติไว้สูงสุดเพียง 3 ครั้งเท่านั้น ข้อมูลเดิม เก็บไว้ 10 ก็ยังอยู่ครบทั้ง 10 ครั้ง แต่เมื่อใดก็ตามที่เรากลับไปแก้ไขบทความเดิมที่เก็บประวัติไว้ 10 ครั้งนั้น เมื่อคุณบันทึกการแก้ไขลงไป ประวัติการแก้ไขนั้นก็จะถูกลบและเก็บไว้เพียงแค่ 3 ครั้งเท่านั้น ตามค่าการเก็บประวัติตามที่ได้กำหนดไว้ในไฟล์ wp-config.php

ส่วนการจะลบข้อมูลประวัติการแก้ไขบทความนั้น อ่านเพิ่มเติมได้จาก “ลดขนาดฐานข้อมูล

ลดขนาดฐานข้อมูล

WordPress ใช้ฐานข้อมูล MySQL ในการเก็บข้อมูลต่าง ๆ ยิ่งใช้ไปนานวัน ก็ยิ่งใหญ่ขึ้น ๆ อาจจะมีผลต่อการสอบถามข้อมูลในการแสดงผลด้วยเช่นกัน และส่วนหนึ่งที่ทำให้ใหญ่ขึ้นก็คือ Post Revisions หรือประวัติการแก้ไขบทความ เมื่อมีการแก้ไขบทความต่าง ๆ ก็จะมีการสร้างระเบียน (record) เก็บบทความเดิมก่อนการแก้ไขเสมอ มีประโยชน์ในการย้อนดูความแตกต่างหรือความเปลี่ยนแปลงของบทความเดิม ๆ ว่าแตกต่างกันอย่างไร

Post Revisions นี้มีการเพิ่มเข้ามาใน WordPress 2.6 ซึ่งเป็นค่าเริ่มต้น หากเราไม่ได้กำหนดปิดการใช้งานไว้ใน wp-config.php ก็จะเป็นการเปิดใช้โดยอัตโนมัติ ทุกครั้งที่แก้ไขบทความ ก็จะสร้างระเบียนไว้เสมอ และยิ่งแก้ไขบ่อย ๆ ฐานข้อมูลก็จะใหญ่ขึ้น เราจะมาดูการลดขนาดฐานข้อมูลกันว่าทำอย่างไร

อย่างแรกก็จะต้องปิด Post Revisions กันเสียก่อน แม้บางท่านอาจจะบอกว่าเก็บไว้ดูประวัติการแก้ไขบทความเก่า ๆ ก็ไม่เป็นไร แต่บางคนอาจจะอยากต้องการปิดเพราะไม่ได้สนใจว่าจะแก้ไขอย่างไร แก้ไขแล้วก็จบ ๆ กันไป งั้นมาดูการปิด Post Revisions กัน

define(‘WP_POST_REVISIONS’, false);

นำโค้ดด้านบนไปใส่ไว้ใน wp-config.php ก็จะเป็นการปิด Post Revisions แล้ว แก้ไขครั้งต่อไปก็จะไม่สร้างระเบียนขึ้นมาเก็บข้อมูลอีกแล้วหล่ะครับ

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

  1. เปิด phpmyadmin
  2. เลือกฐานข้อมูลที่ติดตั้ง WordPress
  3. คลิกปุ่ม “SQL” ด้านบน จะปรากฏช่องว่างๆ สำหรับใส่คำสั่ง SQL
  4. ใส่คำสั่ง DELETE FROM wp_posts WHERE post_type = “revision”; ลงไปในช่องคำสั่ง
  5. คลิกปุ่ม “ลงมือ”

wp_posts คือชื่อตารางข้อมูล คำว่า wp นั้นคือคำนำหน้าตารางข้อมูลที่อยู่ใน wp-config.php บรรทัด $table_prefix = ‘wp_’; หากมีการเปลี่ยนแปลงจากค่าเดิมที่กำหนดมาจาก WordPress ก็แก้ไขให้ตรงตาม $table_prefix ของคุณ

phpmyadmin จะทำการลบระเบียนที่เก็บประวัติการแก้ไขบทความออก ทำให้ฐานข้อมูลของคุณมีขนาดเล็กลง หากไม่มั่นใจ ก่อนทำให้สำรองข้อมูลของคุณเสียก่อน

การปิด Post Revision ใน WordPress 2.6

Post Revision เป็นคุณลักษณะใหม่ของ WordPress ที่มีในรุ่น 2.6 มันจะเก็บข้อมูลการเปลี่ยนแปลงของบทความที่มีการแก้ไขในแต่ละครั้งเหมือนกับพวก Wiki ทำให้เราย้อนกลับไปเปรียบเทียบความเปลี่ยนแปลงที่เกิดขึ้นของบทความได้ แต่เราก็จะเสียพื้นในการจัดเก็บข้อมูลไว้ด้วยเช่นกัน

ในกรณีที่คุณไม่อยากใช้คุณลักษณะนี้ ก็สามารถปิดการใช้งานได้ โดยการนำโค้ดด้านล่างไปใส่ไว้ใน wp-config.php

define('WP_POST_REVISIONS', false);

การลบ Post Revision ที่ถูกสร้างขึ้นแล้ว ให้รันโค้ดด้านล่างใน phpmyadmin

DELETE FROM wp_posts WHERE post_type = 'revision';

ข้อสังเกต : wp_posts นั้น wp_ คือ $table_prefix ที่กำหนดไว้ใน wp-config.php หากบล็อกของคุณมีการกำหนด $table_prefix เป็นอย่างอื่น ก็ให้แก้ไขตาม ให้ถูกต้อง

แต่ก่อนที่จะทำการการสอบถามต่าง ๆ ใน phpmyadmin ควรที่จะสำรองข้อมูลไว้ก่อนเสมอ

อ้างอิง : How To Turn Off Post Revision In WordPress 2.6