استبدال WP-Cron بمهمة cron حقيقية
يشغّل ووردبريس مهامه المجدولة مع تحميل الصفحات، فيبطّئ المواقع المزدحمة ويفوّت المواعيد في الهادئة. انقلها إلى مهمة cron في النظام.
أوقف ووردبريس عن تشغيل مهامه المجدولة مع تحميل الصفحات، وشغّلها على جدول حقيقي بدلًا من ذلك. ينطبق على الاستضافة المشتركة والموزِّعة والمميّزة.
لماذا WP-Cron مشكلة
WP-Cron ليس مهمة cron. بل هو حل التفافي: فيفحص ووردبريس المهام المستحقة في كل مرة يحمّل فيها أحد صفحة.
وذلك يفشل في الاتجاهين:
- على المواقع المزدحمة، قد يُثير كل زائر الفحص. فإن كانت عمّال PHP مشبعة، وصل طلب، وبدأ ووردبريس مهمة cron، وانتظرت المهمة عاملًا — فينتظر الزائر أيضًا. وهذا مساهم شائع في أخطاء حدّ الموارد.
- على المواقع الهادئة، لا تعمل المهام المجدولة أصلًا، لأن أحدًا لم يحمّل صفحة. فتفوت المقالات المجدولة موعدها ولا تحدث النسخ الاحتياطية.
ومهمة cron حقيقية تعالج الاثنين: فهي تعمل على جدول ثابت بغضّ النظر عن الزيارات، ولا تحجب زائرًا أبدًا. ودليل إضافات ووردبريس نفسه يوصي بها.
1. عطّل WP-Cron
حرّر wp-config.php وأضف هذا فوق السطر الذي يقرأ
/* That's all, stop editing! */:
define( 'DISABLE_WP_CRON', true );وهذا يوقف الإثارة عند تحميل الصفحة. ولا يوقف تشغيل wp-cron.php عند استدعائه
مباشرة — وهو بالضبط ما تفعله الخطوة التالية.
2. أضف مهمة cron في النظام
-
في cPanel، افتح Cron Jobs.
-
اضبط الجدول على Once Per Five Minutes، أو أدخل
*/5 * * * *. -
أدخل الأمر:
cd /home/cpaneluser/public_html && /usr/local/bin/php -q wp-cron.php > /dev/null 2>&1
استبدل cpaneluser باسم مستخدم cPanel لديك، وعدّل المسار إن لم يكن ووردبريس في
public_html.
خمس دقائق تناسب معظم المواقع. فالتكرار الأسرع يعيد إنشاء مشكلة الحمل التي تعالجها؛ والأبطأ يؤخّر المقالات المجدولة. وإن كنت تستخدم WooCommerce، فأبقِها على خمس — فمعالجة الطلبات وتحديثات المخزون تعتمد عليها.
و> /dev/null 2>&1 يكتم المخرجات. فبدونه يرسل لك cPanel النتيجة كل خمس دقائق —
راجع
إيقاف رسائل cron.
تأكّد أنه نجح
ثبّت WP Crontrol وافتح Tools ← Cron Events. وينبغي أن تظهر الأحداث عاملةً على جدول، والإشعار بأن WP-Cron معطّل يؤكّد سريان الخطوة الأولى.
ويمكنك التأكيد مباشرة كذلك:
cd /home/cpaneluser/public_html && php -q wp-cron.php && echo "ran ok"إن توقّفت المهام المجدولة
- المسار خاطئ. فـ cPanel لا يتحقّق منه. شغّل الأمر يدويًا عبر SSH وانظر ما يُبلغ به.
- ووردبريس في مجلد فرعي. عدّل مسار
cdتبعًا لذلك. - أُضيف
DISABLE_WP_CRONأسفل سطر «stop editing»، حيث لا أثر له. انقله فوقه.
اقرأ أيضًا
معالجة «missing the MySQL extension» في ووردبريس
فعّل إضافة nd_mysqli في PHP كي يستطيع ووردبريس الوصول إلى قاعدة بياناته، وعالج تحذير مكتبة عميل utf8mb4 في Site Health.
معالجة بطء إدارة ووردبريس مع LiteSpeed Cache
بطء wp-admin مع LiteSpeed Cache سببه عادةً إضافة ذاكرة كائنات مفعَّلة بلا شيء تتصل به. اضبطها، أو عطّل الإضافة.