ไม่มีข้อเสียสำหรับการรัน WP CRON โดยใช้งาน cron ของเซิร์ฟเวอร์ ในความเป็นจริงนี่คือแนวทางปฏิบัติที่แนะนำ
ตามที่อย่างเป็นทางการ WordPress เอกสารการพัฒนาปลั๊กอิน :
WP-Cron ไม่ทำงานอย่างต่อเนื่องซึ่งอาจเป็นปัญหาหากมีงานสำคัญที่ต้องทำงานให้ตรงเวลา มีทางออกที่ง่ายสำหรับสิ่งนี้ เพียงตั้งค่าตัวกำหนดตารางงานของระบบให้ทำงานตามช่วงเวลาที่คุณต้องการ (หรือตามเวลาที่กำหนด)
หากต้องการทำสิ่งนี้คุณต้องปิดใช้งานพฤติกรรม cron เริ่มต้นในwp-config.php
:
define('DISABLE_WP_CRON', true);
จากนั้นกำหนดเวลาwp-cron.php
จากเซิร์ฟเวอร์ของคุณ สำหรับ Linux นั่นหมายถึง:
crontab -e
อย่างไรก็ตามแทนที่จะรันใน Command Line (CLI) ให้รันเป็นคำร้องขอ HTTP เพื่อที่คุณอาจใช้wget
:
*/5 * * * * wget -q -O - https://your-domain.com/wp-cron.php?doing_wp_cron
WordPress โหลดไฟล์หลักที่จำเป็นทั้งหมดปลั๊กอิน ฯลฯwp-cron.php
ด้วยรหัสต่อไปนี้:
if ( !defined('ABSPATH') ) {
/** Set up WordPress environment */
require_once( dirname( __FILE__ ) . '/wp-load.php' );
}
ดังนั้นไม่ต้องกังวลกับ WordPress ที่ไม่โหลดคุณสมบัติที่สำคัญ
wget http://YOUR_SITE_URL/wp-cron.php
โดยไม่เพิ่ม?doing_wp_cron
ดังนั้นจะดีกว่าอีกไหม การเพิ่มนอกเหนือจากการ?doing_wp_cron
ทำสิ่งที่ไม่ใช่รุ่นไม่?