จากที่เคยเขียน query WordPress: ดูว่า post ไว้วันไหนบ้าง ผลคือที่เคยคิดว่า post ทุกเสาร์ โพสต์ทุกเดือนจริง ๆ หายไปเยอะเลย อยากจะทำให้ได้ตามอุดมคติ เลยจะ update เปลี่ยนเป็นวันที่แผยแพร่ทุกวันเสาร์ติด ๆ กันไปเลย
WordPress_post_every_statuday.sql
SET @row_number = 0;
SET @start_date = '2009-08-08';
-- วันเสาร์แรกที่ถูกต้อง (8 สิงหาคม 2009) UPDATE `wp_posts` AS p1 JOIN (SELECT Id, (@row_number := @row_number + 1) AS rn -- กำหนดเลขลำดับตาม Id FROM `wp_posts` WHERE post_status IN ('publish', 'future') AND post_title NOT LIKE 'http%' AND post_type = 'post' ORDER BY Id ASC -- กำหนดลำดับการอัปเดต) AS ranked_posts ON p1.Id = ranked_posts.Id SET p1.post_date = DATE_ADD (@start_date, INTERVAL (ranked_posts.rn - 1) * 7 DAY -- คำนวณวันเสาร์ถัดไป) , p1.post_date_gmt = DATE_ADD (@start_date, INTERVAL (ranked_posts.rn - 1) * 7 DAY -- ใช้ค่าเดียวกันสำหรับ post_date_gmt) WHERE p1.post_status IN ('publish', 'future') AND p1.post_title NOT LIKE 'http%' AND p1.post_type = 'post';
-- เพื่อป้องกันปัญหาการใช้ตัวแปรในเซสชันถัดไป (แนะนำ) SET @row_number = NULL;
SET @start_date = NULL;
script นี้จะ update วันที่ post_date และ post_date_gmt ให้เป็นวันเสาร์ได้ทั้งหมด แล้วก็ได้รู้ความจริง ว่า เวลามันหายไปเป็นปีเลย T_T
- วันที่ 2009-08-08 คือ เสาร์แรกหลังจากวันเกิด และเจอว่าเป็นวันที่แผยแพร่ blog ครั้งแรก
- @start_date จะเป็นตัวแปรที่เก็บว่าวันเสาร์ต่อไปคือวันอะไร
อ่านเพิ่มเติม