# استبدال WP-Cron بمهمة cron حقيقية
Source: https://docs.webgee.com/ar/hosting/wordpress/enhancing-wordpress-performance-disabling-wp-cron-for-faster-load-times



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

## لماذا WP-Cron مشكلة [#لماذا-wp-cron-مشكلة]

WP-Cron ليس مهمة cron. بل هو حل التفافي: فيفحص ووردبريس المهام المستحقة **في كل
مرة يحمّل فيها أحد صفحة**.

وذلك يفشل في الاتجاهين:

* **على المواقع المزدحمة**، قد يُثير كل زائر الفحص. فإن كانت عمّال PHP مشبعة،
  وصل طلب، وبدأ ووردبريس مهمة cron، وانتظرت المهمة عاملًا — فينتظر الزائر أيضًا.
  وهذا مساهم شائع في
  [أخطاء حدّ الموارد](/ar/performance/understanding-and-resolving-the-503-error-resource-limit-reached).
* **على المواقع الهادئة**، لا تعمل المهام المجدولة أصلًا، لأن أحدًا لم يحمّل
  صفحة. فتفوت المقالات المجدولة موعدها ولا تحدث النسخ الاحتياطية.

ومهمة cron حقيقية تعالج الاثنين: فهي تعمل على جدول ثابت بغضّ النظر عن الزيارات،
ولا تحجب زائرًا أبدًا. ودليل إضافات ووردبريس نفسه يوصي بها.

## 1. عطّل WP-Cron [#1-عطّل-wp-cron]

حرّر `wp-config.php` وأضف هذا **فوق** السطر الذي يقرأ
`/* That's all, stop editing! */`:

```php
define( 'DISABLE_WP_CRON', true );
```

وهذا يوقف الإثارة عند تحميل الصفحة. ولا يوقف تشغيل `wp-cron.php` عند استدعائه
مباشرة — وهو بالضبط ما تفعله الخطوة التالية.

## 2. أضف مهمة cron في النظام [#2-أضف-مهمة-cron-في-النظام]

1. في cPanel، افتح **Cron Jobs**.
2. اضبط الجدول على **Once Per Five Minutes**، أو أدخل `*/5 * * * *`.
3. أدخل الأمر:

   ```bash
   cd /home/cpaneluser/public_html && /usr/local/bin/php -q wp-cron.php > /dev/null 2>&1
   ```

استبدل `cpaneluser` باسم مستخدم cPanel لديك، وعدّل المسار إن لم يكن ووردبريس في
`public_html`.

<Callout type="info">
  خمس دقائق تناسب معظم المواقع. فالتكرار الأسرع يعيد إنشاء مشكلة الحمل التي
  تعالجها؛ والأبطأ يؤخّر المقالات المجدولة. وإن كنت تستخدم WooCommerce، فأبقِها
  على خمس — فمعالجة الطلبات وتحديثات المخزون تعتمد عليها.
</Callout>

و`> /dev/null 2>&1` يكتم المخرجات. فبدونه يرسل لك cPanel النتيجة كل خمس دقائق —
راجع
[إيقاف رسائل cron](/ar/hosting/how-do-i-stop-suppress-cron-emails-from-being-sent-or-logged).

## تأكّد أنه نجح [#تأكّد-أنه-نجح]

ثبّت [WP Crontrol](https://wordpress.org/plugins/wp-crontrol/) وافتح
**Tools ← Cron Events**. وينبغي أن تظهر الأحداث عاملةً على جدول، والإشعار بأن
WP-Cron معطّل يؤكّد سريان الخطوة الأولى.

ويمكنك التأكيد مباشرة كذلك:

```bash
cd /home/cpaneluser/public_html && php -q wp-cron.php && echo "ran ok"
```

## إن توقّفت المهام المجدولة [#إن-توقّفت-المهام-المجدولة]

* **المسار خاطئ.** فـ cPanel لا يتحقّق منه. شغّل الأمر يدويًا عبر SSH وانظر ما
  يُبلغ به.
* **ووردبريس في مجلد فرعي.** عدّل مسار `cd` تبعًا لذلك.
* **أُضيف `DISABLE_WP_CRON` أسفل سطر «stop editing»**، حيث لا أثر له. انقله
  فوقه.

## اقرأ أيضًا [#اقرأ-أيضًا]

* [إدارة مهام cron في cPanel](/ar/hosting/managing-cron-jobs-in-cpanel)
* [معالجة خطأ 503 Resource Limit Reached](/ar/performance/understanding-and-resolving-the-503-error-resource-limit-reached)
* [تحسين لوحة ووردبريس أو WooCommerce البطيئة](/ar/hosting/wordpress/how-to-improve-a-slow-wordpress-or-woocommerce-dashboard)
