วิธีจัดการงาน WordPress Cron

เผยแพร่แล้ว: 2021-05-14
งาน cron wordpress
ติดตาม @Cloudways

นักพัฒนา WordPress หลายคนโดยเฉพาะผู้เริ่มต้นมีคำถามทั่วไปว่า " WordPress cron คืออะไร" กับ "วิธีจัดการงาน cron ของ WordPress" วินาทีใกล้

คำตอบนั้นง่าย: ใช้วิธีการจัดการงาน cron ของ WordPress ที่ฉันจะสรุปในบทความนี้

  • WordPress Cron คืออะไร?
  • วิธีจัดการ WordPress Cron Job
    • วิธีจัดการงาน WordPress Cron ด้วย Plugin
      • ขั้นตอนที่ 1: ติดตั้งปลั๊กอินควบคุม WP
      • ขั้นตอนที่ 2: ดูและทำความเข้าใจเหตุการณ์ Cron
      • ขั้นตอนที่ 3: แก้ไขกิจกรรม Cron
      • ขั้นตอนที่ 4: การเพิ่มช่วงเวลาที่กำหนดเอง
      • ขั้นตอนที่ 5: การเพิ่มกิจกรรม Cron ใหม่
    • วิธีจัดการงาน WordPress Cron ด้วย WP CLI
  • วิธีตั้งค่างาน Cron จริง

Cron เป็นยูทิลิตี UNIX มาตรฐานสำหรับการจัดกำหนดการการดำเนินการงาน (สคริปต์หรือคำสั่ง) ในเวลา วันที่ หรือช่วงเวลาที่ระบุ งานที่จะดำเนินการเรียกว่างาน cron อย่างที่คุณเดาได้ จุดประสงค์ของงาน cron คือการทำให้งานที่ซ้ำๆ เป็นไปโดยอัตโนมัติ เพื่อให้คุณใช้เวลาอย่างมีประสิทธิผลมากขึ้น

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

WordPress Cron คืออะไร?

WordPress มีระบบ cron ของตัวเองสำหรับการจัดกำหนดการงานต่างๆ เช่น การตรวจสอบการอัปเดต การตั้งเวลาโพสต์สำหรับการเผยแพร่ และการลบความคิดเห็นจากถังขยะ งาน cron ทั้งหมดถูกจัดการโดย WP-Cron

แม้ว่าชื่อ (และแนวคิดหลัก) จะมาจาก UNIX cron แต่ WordPress cron จะไม่ทำงานเช่นนั้นและใช้ช่วงเวลาสำหรับการจัดกำหนดการงาน ช่วงเวลาเริ่มต้นโดย WordPress จะเป็นรายชั่วโมง วันละสองครั้ง รายวัน และรายสัปดาห์ ที่นี่ งานตามเวลาขึ้นอยู่กับผู้ใช้ที่เข้าชมไซต์ของคุณ ซึ่งหมายความว่า WordPress cron จะทำงานก็ต่อเมื่อผู้ใช้เข้าชมเว็บไซต์ของคุณเท่านั้น

โฮสติ้ง WordPress ภายใต้การจัดการ เริ่มต้นที่ $10/เดือน

เพิ่มและกำหนดเวลางาน cron ได้อย่างง่ายดายบนแพลตฟอร์มโฮสติ้งคลาวด์ที่เร็วที่สุด

ทดลองใช้ฟรี 3 วัน

กล่าวอีกนัยหนึ่ง WordPress cron ทำงานเมื่อโหลดหน้าเว็บ บางครั้งสิ่งนี้ไม่น่าเชื่อถือ และนั่นเป็นสาเหตุที่ผู้ใช้จำนวนมากชอบงาน cron ระดับเซิร์ฟเวอร์มากกว่างาน WP-Cron

ในบทความนี้ ฉันจะแสดงวิธีจัดการงาน cron ของ WordPress และตั้งค่างาน cron จริงสำหรับไซต์ WordPress ของคุณ

วิธีจัดการงาน WordPress Cron

มีหลายวิธีในการตั้งค่าและจัดการงาน cron ของ WordPress แต่ฉันจะแสดงวิธียอดนิยมสองวิธี

อันดับแรกใช้ปลั๊กอินการจัดการ cron เช่น WP Crontrol ที่ให้คุณเพิ่ม แก้ไข และจัดการงาน cron ของ WordPress ได้โดยตรงจากแดชบอร์ด WP คุณยังสามารถสร้างงาน cron สร้าง hooks และฟังก์ชัน และกำหนดช่วงเวลาที่กำหนดเองสำหรับงาน

และวิธีที่สองคือกับ WordPress CLI

วิธีจัดการงาน WordPress Cron ด้วย Plugin

ฉันจะใช้ปลั๊กอิน WP Crontrol ที่ให้คุณดูและควบคุม WordPress cron สำหรับแอปพลิเคชัน WordPress ของคุณ เป็นปลั๊กอินยอดนิยมที่ใช้จัดการงาน WP cron และมีการติดตั้งที่ใช้งานอยู่มากกว่า 100,000 รายการ
นี่เป็นวิธีที่ง่ายที่สุดในการจัดการงาน cron ของ WordPress และคุณสามารถดู แก้ไข สร้าง ลบ และทำสิ่งต่างๆ ได้มากขึ้นด้วยกิจกรรม cron ของ WordPress

มาเริ่มกันเลย!

ขั้นตอนที่ 1: ติดตั้งปลั๊กอินควบคุม WP

เช่นเดียวกับปลั๊กอินอื่น ๆ คุณต้องติดตั้ง WP Crontrol จากที่เก็บปลั๊กอินและเปิดใช้งาน เมื่อติดตั้งแล้ว คุณจะสังเกตเห็นว่าตัวเลือกใหม่ “เหตุการณ์ Cron” ปรากฏในแท็บ เครื่องมือ

เหตุการณ์ cron

ขั้นตอนที่ 2: ดูและทำความเข้าใจเหตุการณ์ Cron

ถัดไป คุณต้องคลิก Cron Events และคุณจะเห็นรายการกิจกรรม cron ที่ทำงานอยู่บนแอปพลิเคชัน WordPress ของคุณ

รายการกิจกรรม cron

จากส่วนนี้ คุณสามารถเรียกใช้ แก้ไข และลบกิจกรรม cron ของคุณได้ คุณจะเห็นตัวเลือกนี้เมื่อคุณวางเมาส์เหนือเหตุการณ์ cron

คุณยังจะพบข้อมูลที่เป็นประโยชน์เกี่ยวกับงาน cron เหล่านี้ และระบุได้อย่างรวดเร็วว่างาน cron ใดที่ใช้เพื่อวัตถุประสงค์ใดและอีกมากมาย ในคอลัมน์แรก Hook จะแสดงชื่อของ hook ที่ใช้โดยแกนหลักของ WordPress หรือปลั๊กอินใดๆ ตัวอย่างเช่น คำนำหน้า “ wp ” แสดงว่าเป็น cron ของ WordPress core คุณจะสังเกตเห็นว่าไม่มีตัวเลือกสำหรับการลบเหตุการณ์ cron เหล่านี้ แต่คุณสามารถใช้ตัวเลือก แก้ไข และ เรียกใช้ ทันที ในทำนองเดียวกัน สำหรับปลั๊กอินของคุณ คุณจะสังเกตเห็นการใช้คำนำหน้าอื่นๆ (เช่น สำหรับ WooCommerce, “wc” หรือ “woocommerce”)

อาร์กิวเมนต์ คอลัมน์ที่สองมีเพียงอาร์กิวเมนต์ที่ส่งผ่านไปยังฟังก์ชันของเบ็ด

คอลัมน์ที่สามแสดงว่างาน cron นี้จะรันในครั้งต่อไปเมื่อใด

คอลัมน์ที่สี่ Action แสดงให้เห็นว่า cron นี้จะดำเนินการใด ("ฟังก์ชัน" ของงาน cron)
คอลัมน์สุดท้ายกำหนดเวลาการเกิดซ้ำของงาน cron โดยพื้นฐานแล้วจะเป็นช่วงเวลาสำหรับงานตามกำหนดการ

ขั้นตอนที่ 3: แก้ไขกิจกรรม Cron

ตอนนี้ มาแก้ไขงาน cron WP เพื่อทดสอบปลั๊กอินนี้

ไปที่ ชื่อ เบ็ด แล้วคลิก แก้ไข ส่วนใหม่ “ แก้ไขกิจกรรม Cron ” จะปรากฏขึ้นซึ่งคุณจะเห็นฟิลด์ต่างๆ ในกรณีของฉัน ฉันแก้ไขเบ็ด “wp_privacy_delete_old_export_files” ต่อไป ฉันจะเปลี่ยนการเกิดซ้ำของงาน cron นี้เป็น "ทุก ๆ สิบห้านาที"

แก้ไขกิจกรรม cron

ขั้นตอนที่ 4: การเพิ่มช่วงเวลาที่กำหนดเอง

ต่อไป ฉันจะแสดงวิธีเพิ่มช่วงเวลาที่กำหนดเองสำหรับกิจกรรม cron ของคุณ สำหรับสิ่งนี้ คลิกที่แท็บ " Cron Schedule ” และหน้าจอใหม่จะปรากฏขึ้น ซึ่งคุณจะเห็นรายละเอียดของช่วงเวลาที่กำหนดไว้ ถัดไป เลื่อนลงไปที่ด้านล่างซึ่งคุณจะเห็น “ เพิ่ม Cron Schedule ” กรอกข้อมูลในฟิลด์และคลิก เพิ่ม Cron Schedule

เพิ่มกำหนดการ cron

โปรดทราบว่าอินพุตสำหรับช่วงเวลาเป็นวินาที ฉันจะใช้ 600 วินาทีเพื่อตั้งช่วงเวลาเป็น 10 นาที

ตอนนี้คุณสามารถแก้ไขเหตุการณ์ cron และแทนที่ด้วยช่วงเวลาที่คุณกำหนดเองได้

แก้ไขเหตุการณ์ cron

ขั้นตอนที่ 5: การเพิ่มกิจกรรม Cron ใหม่

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

ขั้นแรก คลิก Add Cron Event และคุณจะเข้าสู่ส่วน add cron จากนั้นให้ชื่อ hook ตามที่คุณต้องการ (ควรเป็นไปตามหลักการตั้งชื่อ PHP ปกติและไม่มีช่องว่าง)

จากนั้นเพิ่มอาร์กิวเมนต์ (เป็นทางเลือก) และในกรณีของฉันจะว่างเปล่า จากนั้นเลือกตัวเลือกใดก็ได้และใส่เวลาในช่อง Next Run สุดท้าย เลือกเวลาที่เกิดซ้ำ (กำหนดเวลา) สำหรับ cron ใหม่ของคุณ แล้วคลิก เพิ่ม กิจกรรม

เพิ่มเหตุการณ์ cron

หากคุณมีข้อสงสัยใดๆ เกี่ยวกับสิ่งนี้ คุณสามารถตรวจสอบการตั้งค่าของงาน cron ที่กำลังทำงานอยู่ได้จากกิจกรรม cron ของคุณ

หลังจากเพิ่มงาน cron ใหม่แล้ว ให้ไปที่แท็บ cron events และตรวจสอบ cron ที่คุณสร้างขึ้นใหม่ คุณจะสังเกตเห็นว่าในคอลัมน์การดำเนินการจะแสดงว่า ไม่มี (ข้อผิดพลาด) เนื่องจากคุณยังไม่ได้กำหนดการดำเนินการใดๆ สำหรับงาน cron นี้ ดังนั้น คุณต้องเขียนโค้ดสองสามบรรทัดในไฟล์ functions.php ของธีมและเพิ่มการดำเนินการ

ไม่มีข้อผิดพลาด

หมายเหตุ: ก่อนดำเนินการใด ๆ เพิ่มเติม ขอแนะนำให้สำรองข้อมูลไซต์ WordPress

มาเปิดไฟล์และเพิ่มโค้ดต่อไปนี้ต่อจาก <?php :

 add_action ( 'cloudways_new_cron', 'cw_function' );
ฟังก์ชัน cw_function() {
wp_mail( '[email protected]', 'Cloudways Cron', 'Cloudways - โฮสติ้งคลาวด์ที่มีการจัดการ!' );
}

อย่าลืมแทนที่ที่อยู่อีเมลของฉันด้วยที่อยู่อีเมลของคุณเอง

ฟังก์ชั่น php ที่อยู่อีเมล
คุณสามารถเห็นในภาพด้านบน ฉันแก้ไขโดยตรงด้วยแดชบอร์ดของ WordPress หากต้องการ คุณสามารถแก้ไขไฟล์นี้ผ่านไคลเอนต์ FTP เช่น FileZilla

ต่อไป ให้ตรวจสอบกล่องจดหมายอีเมลและดูว่าเราได้รับข้อความหรือไม่

อีเมล cron

ธาดา! เสร็จแล้วและเราได้เพิ่มกิจกรรม cron ใหม่เรียบร้อยแล้ว

วิธีจัดการงาน WordPress Cron ด้วย WP CLI

คุณยังสามารถดูและจัดการงาน WordPress cron ทั้งหมดของคุณได้จาก WordPress CLI ที่ Cloudways คุณต้องเปิดเทอร์มินัลและเข้าสู่ระบบด้วยข้อมูลรับรองเซิร์ฟเวอร์

ถัดไป วางเส้นทางของแอปพลิเคชัน WordPress ของคุณ ในกรณีของฉัน URL คือ:

 แอปพลิเคชันซีดี/urrghmpqks/public_html/ 

งาน cron WP CLI

ถัดไป คุณต้องเรียกใช้คำสั่งนี้:

 รายการกิจกรรม wp cron 

งาน cron WP CLI

คุณสามารถดูชื่อเบ็ด รันครั้งถัดไป สัมพันธ์รันถัดไป และการเกิดซ้ำ (เวลาที่กำหนด)

วิธีตั้งค่างาน Cron จริง

ตอนนี้คุณรู้แล้วว่างาน cron ของ WordPress คืออะไรและทำงานอย่างไร จะเป็นอย่างไรถ้าคุณต้องการแทนที่ด้วยงาน cron จริงเนื่องจากเหตุผลใดๆ เช่น ทราฟฟิกต่ำ งานสำคัญที่ต้องเรียกใช้ในเวลาใดเวลาหนึ่ง การโจมตี DDoS ที่มากเกินไป หรือเวลาในการโหลดหน้าเว็บสูง

มาเริ่มกันเลย!

ขั้นตอนที่ 1: เปิดและแก้ไขไฟล์ wp-config.php

ขั้นแรก คุณต้องเปิดไฟล์ wp-config โดยใช้ไคลเอนต์ FTP เช่น FileZilla หรือไคลเอ็นต์ SSH เช่น puTTY หลังจากนั้น แก้ไขไฟล์และวางโค้ดบรรทัดต่อไปนี้ก่อนบรรทัดที่เขียนว่า /* เท่านั้น หยุดแก้ไข! บล็อกที่มีความสุข */

รหัส:

 กำหนด ('DISABLE_WP_CRON', จริง); 

แก้ไขไฟล์กำหนดค่า wp

รหัสนี้ปิดใช้งานกิจกรรม cron ที่ทำงานอยู่บนไซต์ WordPress ของคุณและตอนนี้คุณสามารถสร้างงาน cron จริงได้

ขั้นตอนที่ 2: การเพิ่มงาน Cron ใหม่ไปยังเซิร์ฟเวอร์

ถัดไป เข้าสู่ระบบแพลตฟอร์ม Cloudways ของคุณ จากนั้นไปที่ แผงการจัดการแอปพลิเคชัน > การจัดการงาน Cron > ส่วน ขั้นสูง

เพิ่มงาน cron ใหม่

จากนั้นเพิ่มคำสั่งต่อไปนี้แล้วคลิกบันทึกการเปลี่ยนแปลง:
*/5 * * * * wget -q -O - 'https://wordpress-413270-1299955.cloudwaysapps.com/wp-cron.php?doing_wp_cron' >/dev/null 2>&1

แท็บ cron ขั้นสูง

ในคำสั่งด้านบน อันดับแรก ฉันกำหนดช่วงเวลาห้านาทีสำหรับงาน cron คุณสามารถใช้ไซต์นี้เพื่อตรวจสอบนิพจน์กำหนดเวลา ในกรณีของฉัน */5 * * * * คือนิพจน์ช่วงเวลา

ยินดีด้วย! คุณเพิ่มงาน cron จริงสำเร็จแล้ว

คำพูดสุดท้าย!

ฉันหวังว่าบทความนี้จะช่วยให้คุณเข้าใจว่างาน cron ของ WordPress ทำงานอย่างไร ฉันได้พูดถึงสองวิธีในการจัดการงาน cron ของ WordPress; หนึ่งผ่านปลั๊กอินและอีกอันผ่าน WP-CLI ฉันได้พูดถึงวิธีตั้งค่างาน cron จริงบนเซิร์ฟเวอร์จริงด้วย

หากคุณมีคำถามใด ๆ โปรดแจ้งให้เราทราบในส่วนความคิดเห็นด้านล่าง