🛠️ مشاكل ووردبريس

إصلاح WP-Cron في ووردبريس: حل المهام المجدولة التي لا تعمل

إصلاح WP-Cron في ووردبريس وتشغيل المهام المجدولة

إصلاح WP-Cron في ووردبريس يبدأ بفهم أن النظام ليس خدمة تعمل باستمرار مثل Cron في الخادم. ووردبريس يفحص الأحداث المستحقة عند تحميل الصفحات، ثم يحاول تشغيلها. لهذا قد تتأخر المقالات المجدولة والنسخ الاحتياطية ورسائل WooCommerce في المواقع قليلة الزيارات، أو تتراكم المهام في المواقع المزدحمة عندما يفشل Loopback Request أو يستغرق حدث واحد وقتًا طويلًا.

الحل الصحيح ليس حذف جميع الأحداث أو تعطيل WP-Cron مباشرة. شخّص الحدث المتأخر أولًا، اختبر تشغيله يدويًا، ثم عالج سبب الفشل. إذا كانت دقة التوقيت مهمة، اربط ووردبريس بجدولة الخادم بعد التأكد من أن الاستضافة تدعمها. ويركز إصلاح WP-Cron في ووردبريس هنا على المهام المجدولة وقياس الأثر الفعلي.

ما هو WP-Cron وما الوظائف التي تعتمد عليه؟

WP-Cron هو مجدول المهام المدمج في ووردبريس. تستخدمه النواة والإضافات لتنفيذ أعمال في وقت لاحق أو بصورة متكررة، مثل نشر المقالات المجدولة، البحث عن تحديثات، حذف البيانات المؤقتة، إرسال بعض الرسائل، تشغيل النسخ الاحتياطية، معالجة قوائم البريد، ومتابعة مهام WooCommerce وAction Scheduler. ويشمل نطاق إصلاح WP-Cron في ووردبريس مراجعة Action Scheduler دون تغيير عشوائي.

عند زيارة صفحة، يفحص ووردبريس هل توجد مهمة حان موعدها. إذا لم تصل زيارات في الوقت المتوقع فقد تتأخر المهمة. وإذا مُنعت الطلبات الداخلية أو تعطلت PHP أو امتلأ جدول الأحداث بمهام متكررة، قد تظهر رسالة «حدث مجدول متأخر» في صحة الموقع. ويعتمد القرار في إصلاح WP-Cron في ووردبريس على بيانات طلبات Loopback قبل اعتماد التعديل.

علامات تدل على وجود مشكلة في WP-Cron

  • مقال مجدول بقي في حالة «فشل الجدولة» أو نُشر متأخرًا.
  • النسخ الاحتياطي لا يبدأ إلا عند فتح لوحة التحكم.
  • رسائل الطلب أو الاشتراك تصل على دفعات متأخرة.
  • قائمة Scheduled Actions في WooCommerce تحتوي على عدد كبير من Pending أو Failed.
  • صحة الموقع تعرض خطأ Loopback أو حدثًا متأخرًا.
  • استهلاك CPU يرتفع بصورة دورية بسبب حدث مكرر آلاف المرات.

تشخيص WP-Cron خطوة بخطوة

1. افحص صحة الموقع

اذهب إلى أدوات ← صحة الموقع، وراجع الأخطاء المتعلقة بالأحداث المجدولة والطلبات الحلقية. خطأ Loopback قد ينتج عن جدار حماية، Basic Authentication على بيئة الاختبار، إعداد DNS، أو إضافة أمان تمنع الموقع من الاتصال بنفسه. ويُختبر إصلاح WP-Cron في ووردبريس مع مراقبة Cron الحقيقي على بيئة آمنة.

2. اعرض قائمة الأحداث

إذا كان WP-CLI متاحًا، نفّذ الأمر التالي من مسار تثبيت ووردبريس:

wp cron event list

راجع اسم Hook وموعد التشغيل والتكرار. وجود حدث متأخر لا يعني أن Cron كله معطل؛ قد تكون المشكلة في Callback خاص بإضافة واحدة. لا تحذف Hook قبل معرفة مالكه وتأثيره. وتُوثق نتائج إصلاح WP-Cron في ووردبريس بجانب مؤشرات WP-CLI للمقارنة.

3. شغّل حدثًا محددًا للاختبار

wp cron event run اسم_الحدث

راقب مخرجات الأمر وPHP error log. إذا فشل الحدث يدويًا، فالمشكلة في الكود أو الاتصال الخارجي أو الموارد، وليست في آلية الاستدعاء فقط. نفّذ الاختبار على Staging عندما تتعامل المهمة مع فواتير أو رسائل أو مزامنة مخزون. ويربط التشخيص بين إصلاح WP-Cron في ووردبريس والأحداث المتأخرة لتحديد الأولوية.

4. راجع الثوابت والإضافات

افتح wp-config.php وتحقق هل استُخدم DISABLE_WP_CRON. وجوده بقيمة true دون Cron بديل في الخادم يوقف الاستدعاء المعتاد. لا تعدّل ملف النواة؛ wp-config.php هو المكان الصحيح لهذا الثابت مع نسخة احتياطية قبل التغيير. وتُستخدم نتائج Hooks لتقييم إصلاح WP-Cron في ووردبريس بصورة عملية.

الحل الأول: إبقاء WP-Cron الافتراضي

هذا مناسب للمواقع الصغيرة والمتوسطة التي تستقبل زيارات منتظمة ولا تحتاج إلى توقيت بالدقيقة. عالج Loopback، حدّث الإضافة المسببة، وأوقف تكرار جدولة الحدث داخل الكود. عند تطوير إضافة، تحقق من وجود الحدث قبل استدعاء wp_schedule_event() حتى لا تُنشأ نسخ متعددة منه.

ميزة هذا الحل أنه بسيط ولا يحتاج إعدادًا من لوحة الاستضافة. عيبه أن التوقيت مرتبط بحركة الزيارات، وقد تبدأ عدة طلبات Cron متقاربة في موقع شديد الضغط. ويحدد فحص سجلات PHP أولويات إصلاح WP-Cron في ووردبريس قبل التنفيذ.

الحل الأفضل للمهام الحساسة: Cron حقيقي في الخادم

إذا كان المتجر يعتمد على اشتراكات أو مزامنة مخزون أو رسائل دورية، استخدم System Cron. أضف إلى wp-config.php قبل سطر التوقف عن التحرير: ويُراجع أثر طوابير WooCommerce عند قياس إصلاح WP-Cron في ووردبريس بعد النشر.

define( 'DISABLE_WP_CRON', true );

بعد ذلك أنشئ مهمة من لوحة الاستضافة تستدعي wp-cron.php بفاصل مناسب، مثل كل خمس دقائق. صيغة الأمر تختلف حسب الخادم والمسار وإصدار PHP، لذلك استخدم الصيغة التي توثقها شركة الاستضافة. لا تعطل WP-Cron قبل إنشاء المهمة البديلة واختبارها؛ هذه نقطة الخطأ الأكثر شيوعًا. ويمنح تحليل مراقبة التنفيذ خطة إصلاح WP-Cron في ووردبريس قرارًا أدق.

يفضل استدعاء PHP محليًا من الخادم عندما تسمح البيئة بذلك بدل طلب HTTP عام، لأنه يقلل الاعتماد على DNS وطبقات الحماية. تأكد من أن المهمة تعمل بالمستخدم الصحيح وأن المسار يشير إلى نسخة الموقع الفعلية. وتبقى بيانات المهام المجدولة مرجعًا أثناء إصلاح WP-Cron في ووردبريس.

مشكلات خاصة بـWooCommerce وAction Scheduler

WooCommerce يعتمد في أعمال كثيرة على Action Scheduler، وهو نظام طابور يعمل بالتكامل مع Cron. افتح WooCommerce ← الحالة ← الإجراءات المجدولة، ثم افصل بين ثلاث حالات:

  • Pending: تنتظر موعدها أو عامل التنفيذ.
  • Complete: نُفذت بنجاح.
  • Failed: فشلت وتحتاج مراجعة سجل الخطأ والإضافة المالكة.

لا تحذف كل الإجراءات الفاشلة قبل قراءة السجل؛ قد تحتوي على مزامنة دفع أو اشتراك يحتاج إعادة تشغيل مدروسة. إذا كان الطابور ضخمًا، عالج الحدث الذي يعيد إنشاء المهام أولًا، وإلا ستعود المشكلة بعد التنظيف. ويقلل اختبار Action Scheduler مخاطر إصلاح WP-Cron في ووردبريس على الموقع.

أسباب شائعة وحلولها

السببالعلامةالمعالجة
زيارات قليلةتأخير دون أخطاء PHPاستخدم Cron الخادم.
Loopback محظورخطأ في صحة الموقعراجع الجدار الناري وDNS وBasic Auth.
حدث مكررآلاف الصفوف لنفس Hookأصلح منطق الجدولة ثم أزل النسخ الزائدة بحذر.
Callback بطيءTimeout أو CPU مرتفعقسّم العمل إلى دفعات وراجع الاستعلامات.
اتصال خارجي يفشلرسائل HTTP في السجلاضبط Timeout وإعادة المحاولة وفق طبيعة الخدمة.

طريقة اختبار الإصلاح

  1. أنشئ حدثًا آمنًا أو استخدم حدثًا غير مالي للاختبار.
  2. سجل موعد الاستحقاق وراقب تنفيذه دون فتح الموقع يدويًا.
  3. راجع سجل Cron في لوحة الاستضافة وكود الخروج.
  4. افحص قائمة الأحداث بعد فاصلين متتاليين.
  5. اختبر النشر المجدول ورسالة متجر تجريبية على Staging.
  6. راقب CPU وPHP errors لمدة كافية قبل اعتبار المشكلة منتهية.

أسئلة شائعة عن WP-Cron

هل تعطيل WP-Cron يسرع الموقع؟

قد يقلل الطلبات المتكررة في المواقع المزدحمة، لكن التعطيل دون بديل يوقف المهام. التحسين يأتي من تنظيم التنفيذ، لا من الإيقاف المجرد. ويركز إصلاح WP-Cron في ووردبريس هنا على طلبات Loopback وقياس الأثر الفعلي.

ما الفاصل المناسب لمهمة الخادم؟

خمس دقائق شائع، لكن الاختيار يعتمد على حساسية المهام وموارد الاستضافة. الاشتراكات والمخزون قد تحتاجان فاصلًا أقصر، بينما موقع محتوى بسيط لا يحتاج ذلك. ويشمل نطاق إصلاح WP-Cron في ووردبريس مراجعة Cron الحقيقي دون تغيير عشوائي.

هل أستخدم إضافة لإدارة Cron؟

يمكن استخدامها للعرض والتشخيص، لكنها لا تصلح Callback معطوبًا ولا تعالج موارد الخادم. احذفها بعد التشخيص إذا لم تعد مطلوبة.

هل يجوز تشغيل كل الأحداث المعلقة دفعة واحدة؟

ليس قبل معرفة أثرها. بعض الأحداث ترسل رسائل أو تنفذ طلبات خارجية؛ تشغيلها جماعيًا قد يكرر العملية أو يرفع الحمل. ويعتمد القرار في إصلاح WP-Cron في ووردبريس على بيانات WP-CLI قبل اعتماد التعديل.

إذا ظهرت المشكلة بعد تحديث أو تعارض إضافة، راجع دليل تشخيص تعارض إضافات ووردبريس أو اطلب فحص مشكلة ووردبريس. ويُختبر إصلاح WP-Cron في ووردبريس مع مراقبة الأحداث المتأخرة على بيئة آمنة.

مصدر تقني

راجع دليل Cron الرسمي لمطوري WordPress وتوثيق ربط WP-Cron بمجدول النظام. وتُوثق نتائج إصلاح WP-Cron في ووردبريس بجانب مؤشرات Hooks للمقارنة.

كيف تعمل الجدولة قبل إصلاح WP-Cron في ووردبريس؟

WP-Cron ليس خدمة تعمل في الخلفية باستمرار؛ فهو يفحص الأحداث المستحقة عندما يصل طلب إلى الموقع، ما لم توجد آلية أخرى تستدعيه. لذلك قد تتأخر المهام في موقع قليل الزيارات، بينما قد تتنافس طلبات كثيرة على تشغيلها في موقع مزدحم. فهم هذه النقطة أساسي عند إصلاح WP-Cron في ووردبريس، لأن رفع المهلة أو إعادة تشغيل المهمة يدويًا لا يعالج سبب التأخير دائمًا.

ابدأ بحصر الوظائف المتأثرة: نشر المقالات المجدولة، رسائل المتجر، مزامنة المخزون، النسخ الاحتياطي، التنظيف، أو تجديد الاشتراكات. دوّن اسم الحدث وموعده وتكراره والإضافة المالكة له. لا تحذف حدثًا مجهولًا من قاعدة البيانات؛ فقد يكون جزءًا من عملية دفع أو تجديد لم تكتمل بعد. ويربط التشخيص بين إصلاح WP-Cron في ووردبريس وسجلات PHP لتحديد الأولوية.

تمييز WP-Cron عن Action Scheduler

تستخدم إضافات كثيرة، خصوصًا WooCommerce، مكتبة Action Scheduler لإدارة طوابير كبيرة. قد يبدأ تشغيل الطابور عبر WP-Cron، لكن سجلاته وحالاته منفصلة. إذا كانت صفحة «الإجراءات المجدولة» تعرض آلاف المهام المعلّقة، فالمطلوب معرفة أول خطأ متكرر واسم الـHook، لا الضغط على تشغيل الكل. مهمة فاشلة تُعاد باستمرار قد تستهلك العمال وتؤخر بقية الطابور.

الحالةالمعنىالتصرف
Pending قديمالمهمة لم تحصل على فرصة تشغيلراجع مشغل Cron والعمال والزيارات
Failed متكررالكود بدأ ثم أعاد خطأافتح السجل وحدد الإضافة والمدخلات
In-progress مدة طويلةاحتمال توقف أو قفل لم يتحررتحقق من السجل والمهلة قبل الإلغاء
Complete بكثافةتاريخ طبيعي أو احتفاظ مبالغ فيهاضبط التنظيف بدل حذف عشوائي

تشخيص التداخل والأقفال

يمنع قفل WP-Cron تشغيل العملية نفسها بالتوازي لفترة قصيرة، لكن مهمة أطول من المتوقع أو طلبًا انقطع قد يترك أعراضًا مربكة. افحص سجل PHP وطلبات loopback وحالة DNS والشهادة، ثم راقب زمن التنفيذ والذاكرة. إذا كان إصلاح WP-Cron في ووردبريس يحتاج إلى زيادة مهلة، اسأل أولًا لماذا تستغرق المهمة كل هذا الوقت: هل تعالج آلاف السجلات دفعة واحدة؟ هل تنتظر API خارجيًا؟ هل يوجد استعلام بلا فهرس؟

قسّم العمل الكبير إلى دفعات صغيرة قابلة للإعادة، واجعل كل دفعة تسجل نقطة تقدم. هذه البنية تمنع البدء من الصفر عند الانقطاع، وتقلل احتمال تكرار إرسال البريد أو خصم المخزون. في العمليات المالية استخدم معرّفًا فريدًا يجعل التنفيذ Idempotent، أي أن إعادة المحاولة لا تنشئ أثرًا مضاعفًا. وتُستخدم نتائج طوابير WooCommerce لتقييم إصلاح WP-Cron في ووردبريس بصورة عملية.

متى تستخدم Cron حقيقيًا على الخادم؟

يكون Cron النظام مناسبًا عندما تحتاج مواعيد أقرب للانتظام أو عندما لا تكفي الزيارات لتشغيل الأحداث. الإجراء الآمن هو إضافة استدعاء دوري موثوق إلى wp-cron.php، ثم تعطيل التشغيل المعتمد على الزيارات عبر DISABLE_WP_CRON. لا تعطل WP-Cron قبل التأكد من أن الاستدعاء الخارجي يعمل ويعود بحالة ناجحة؛ وإلا تتوقف جميع المهام بصمت. ويحدد فحص مراقبة التنفيذ أولويات إصلاح WP-Cron في ووردبريس قبل التنفيذ.

بعد التحويل، نفّذ إصلاح WP-Cron في ووردبريس على بيئة تجريبية أولًا، وراقب وقت آخر تشغيل وعدد المهام المتأخرة لمدة يوم كامل. اضبط التكرار وفق طبيعة الموقع، وليس كل دقيقة افتراضيًا. متجر ذو اشتراكات وطوابير بريد يختلف عن مدونة تنشر مرة أسبوعيًا.

مؤشرات مراقبة تمنع عودة المشكلة

  • عمر أقدم مهمة معلّقة، وليس عدد المهام فقط.
  • نسبة الفشل لكل Hook خلال 24 ساعة.
  • مدة التنفيذ القصوى والمتوسطة للدفعات.
  • عدد المهام التي أُعيدت أكثر من مرة.
  • زمن loopback وأخطاء HTTP أو TLS.
  • تراكم الإجراءات بعد تحديث WooCommerce أو إضافة الدفع.

ضع حدًا تنبيهيًا يناسب العمل، مثل تأخر بريد الطلب عشر دقائق أو بقاء مزامنة المخزون ساعة. بهذه الطريقة يصبح إصلاح WP-Cron في ووردبريس عملية قابلة للمراقبة لا علاجًا مؤقتًا بعد شكوى العميل.

خطة رجوع واختبار قبول

احتفظ بنسخة قاعدة بيانات قبل حذف أو إعادة جدولة أي حدث. اختبر نشر مقالة مجدولة، رسالة طلب تجريبية، مهمة تنظيف آمنة، ووظيفة الإضافة الأساسية. راقب ألا تُرسل الرسالة مرتين وألا تتغير حالة طلب حقيقي. إذا فشل Cron النظام، أعد تفعيل WP-Cron المعتمد على الزيارات مؤقتًا ثم أصلح الاستدعاء. ويُراجع أثر المهام المجدولة عند قياس إصلاح WP-Cron في ووردبريس بعد النشر.

للتفاصيل البرمجية حول جدولة الأحداث وإزالتها راجع دليل Cron الرسمي للمطورين. وإذا ظهر أن التأخير ناتج عن تعارض إضافة، يفيد دليل فحص تعارضات إضافات ووردبريس في عزل السبب دون تعطيل الموقع الحي.

إصلاح WP-Cron في ووردبريس: بروتوكول يمنع عودة التعطل

بعد استعادة تشغيل المهام، لا تعتبر المشكلة منتهية قبل معرفة سببها الجذري. سجل أقدم حدث متأخر، واسم Hook، والإضافة المالكة، ومدة التنفيذ، وعدد المحاولات. راقب Action Scheduler منفصلًا عن WP-Cron، لأن طابور WooCommerce قد يستمر في الفشل رغم نجاح اختبار loopback. يجعل هذا السجل إصلاح WP-Cron في ووردبريس قابلًا للمراجعة، ويمنع حذف أحداث مهمة أو تشغيلها مرتين دون قصد.

إذا كان الموقع يعتمد على بريد الطلبات والاشتراكات والمزامنة، ضع تنبيهًا قبل أن يشعر العميل بالمشكلة. يمكن ربط ذلك مع خطة صيانة ودعم ووردبريس لمراقبة الطوابير والسجلات. وعندما تكون المهام مرتبطة بالطلبات، راجع أيضًا مشاكل WooCommerce الشائعة للتأكد من أن التأخير لم يغيّر المخزون أو حالة الدفع.

يُقبل إصلاح WP-Cron في ووردبريس عندما تعمل مقالة مجدولة ورسالة طلب ومهمة تنظيف، ولا توجد مهام Pending قديمة أو Failed متكررة، ويستمر Cron الحقيقي في الاستدعاء بعد يوم كامل. وثّق أمر التشغيل وتردده ومالك التنبيه وخطة العودة إلى التشغيل المعتمد على الزيارات عند تعطل Cron النظام.

author-avatar

حول ENG MUSTAFA-WP

أنا مصطفى زكي ، مؤسس ومالك موقع “مصطفى ووردبريس”، ومتخصص في تطوير وتحسين مواقع ووردبريس وإدارة المحتوى الرقمي. أعمل على تقديم حلول عملية لتحسين أداء المواقع، معالجة المشكلات التقنية، تعزيز الأمان، وتهيئة المواقع لمحركات البحث، مع التركيز على تبسيط المفاهيم التقنية وتقديم محتوى واضح يساعد أصحاب المواقع والمتاجر الإلكترونية على إدارة مواقعهم باحترافية وكفاءة.