چگونه wp-cron را در وردپرس غیرفعال کنیم و کرون جاب بهینه تنظیم کنیم؟
غیرفعال کردن WP-Cron در وردپرس و اجرای آن با cron job
WP-Cron یکی از ابزارهای داخلی وردپرس است که برای اجرای وظایف زمانبندیشده استفاده میشود. در این مقاله از اصفهان هاست قصد داریم نحوه غیرفعال کردن WP-Cron و جایگزینی آن با کرونجاب (Cron Job) واقعی را بررسی کنیم.
WP-Cron چیست؟
WP-Cron یک فایل داخلی در وردپرس است که وظیفه اجرای وظایف زمانبندیشده را بر عهده دارد. برای مثال، بررسی بهروزرسانیها، زمانبندی ارسال پستها، و یا اجرای وظایف مربوط به افزونهها. WP-Cron بهجای اینکه بهصورت منظم اجرا شود، تنها زمانی فعال میشود که کاربری از سایت بازدید کند. این مسئله میتواند باعث شود وظایف بهدرستی اجرا نشوند، مخصوصاً زمانیکه بازدید کمی از سایت صورت میگیرد یا سایت دارای ترافیک بالاست.
چرا باید WP-Cron را غیرفعال کنیم؟
اگر تیم پشتیبانی اصفهان هاست شما را به سمت این مقاله هدایت کردهاند، قطعا شما دلایل محکمی برای غیرفعال کردن WP-Cron دارید، بیایید بررسی کنیم که چرا برخی WP-Cron را ناکافی میدانند.
وبسایت وردپرسی شما دارای یک سیستم زمانبندی داخلی به نام wp-cron است. این سیستم وظایفی که حساس به زمان هستند را انجام میدهد، مانند بررسی بهروزرسانیها، انتشار مطالب زمانبندیشده، ایجاد خودکار نسخههای پشتیبان منظم، ارسال ایمیلهای خودکار و موارد دیگر؛ اما تا اینجا که همه چیز خوب است، پس مشکل کجاست؟
مشکل این است که وردپرس فقط زمانی برای بررسی وظایف زمانبندیشده اقدام میکند که شخصی از وبسایت شما بازدید کند. این روش برای اکثر وبسایتها بهاندازه کافی مناسب است، اما گاهی ممکن است برای وبسایتهایی با مقیاس کوچک یا وبسایتهایی با بازدیدکنندگان بسیار زیاد، مشکلاتی را ایجاد کند.
برای مثال، در سایتهای کمترافیک، مطالب زمانبندیشده ممکن است بهموقع منتشر نشوند. در سایتهای پرترافیک، اجرای مکرر wp-cron میتواند باعث کاهش سرعت سایت شود.
لازم در همین ابتدای مسیر اشاره کنیم که اگر فقط میخواهید مشکل مطالب زمانبندیشدهی منتشرنشده را برطرف کنید، میتوانید از افزونهی رایگان “Missed Scheduled Publisher” استفاده کنید؛ اما اگر قصد دارید همهی مشکلات مرتبط با وظایف زمانبندیشده را حل کنید، باید از یک کرونجاب واقعی استفاده کنید.
کرون جاب واقعی توسط سیستمعامل هاست میزبانی وب شما اجرا میشود، نه توسط وردپرس. میتوانید آن را طوری تنظیم کنید که وظایف زمانبندیشده را بهشکلی مطمئنتر بررسی کند. بهطور پیشفرض، وردپرس دسترسی به تنظیم کرون جاب در سطح سرور یا هاست ندارد، اما با دنبال کردن آموزش ما، بهراحتی میتوانید این کار را انجام دهید.
غیرفعال کردن کرونجاب پیشفرض وردپرس (WP-Cron)
برای غیرفعال کردن wp-cron، مسیر بسیار سادهای پیش رو دارید. برای این کار تنها کافی است فایل wp-config.php را ویرایش کنید. این فایل، یکی از فایلهای اصلی پیکربندی وردپرس است و در پوشهی اصلی وبسایت وردپرس شما یعنی دایرکتوری “public_html” قرار دارد. برای دسترسی به این فایل، میتوانید از یک کلاینت FTP استفاده کنید و یا اینکه وارد پنل هاست دایرکت ادمین خود در نت افراز شوید و به راحتی با استفاده از ابزار موجود در فایل منیجر هاستهای اصفهان هاست، ویزایش فایل wp-config.php را انجام دهید.
این فایل حاوی اطلاعات حساس زیادی است و ایجاد تغییرات نادرست میتواند وبسایت وردپرس شما را دچار مشکل کند. به همین دلیل، توصیه میشود پیش از هرگونه ویرایش، از این فایل یک نسخهی پشتیبان تهیه کنید. برای این کار تنها کافی است که فایل wp-config.php موجود بر روی هاست خود را، پیش از اعمال هرگونه تغییر دانلود کرده و بر روی کامپیوتر خود ذخیره کنید.
برای غیرفعال کردن wp-cron، باید کد
define(‘DISABLE_WP_CRON’, true);
را در فایل wp-config.php، دقیقاً قبل از خطی که نوشته است:
That’s all, stop editing! Happy blogging
قرار دهید.
پس از انجام این کار، فایل wp-config.php وبسایت شما ظاهری شبیه تصویر زیر خواهد داشت.

مطابق تصویر بالا با کلیک بر روی آیکن “Save” در بالای صفحه، فایل خود را ذخیره کنید. به همین سادگی شما توانستید کرونجاب پیشفرض وردپرس با عنوان WP-Cron را غیرفعال نمایید. از این پس با بازدید کاربران از وبسایت شما، فایل wp-cron.php فراخوانی نمیشود و این وظیفه شماست که با استفاده از راهکارهای بعدی، کاری کنید که این فایل فراخوانی و اجرا شود، تا اقدامات زمانبندیشده (Cronjobs) وبسایت شما فراخوانی شوند.
جایگزینی WP-Cron با Cron Job در سیپنل (cPanel)
برای اینکه وظایف زمانبندیشده همچنان اجرا شوند، باید از یک کرونجاب واقعی استفاده کنید. در اصفهان هاست این قابلیت بهراحتی از طریق سیپنل قابل تنظیم است. مراحل تنظیم کرونجاب:
- وارد کنترلپنل سیپنل شوید.
- از قسمت Advanced گزینه Cron Jobs را انتخاب کنید.
- در بخش Add New Cron Job مقدار زمانبندی موردنظر را انتخاب کنید (مثلاً هر ۱۵ دقیقه یکبار).
- در قسمت Command این دستور را وارد کنید:
bash wget -q -O – https://yourdomain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
بهجای yourdomain.com آدرس سایت خود را وارد کنید.
- روی دکمه Add New Cron Job کلیک کنید.
ایجاد کرون جاب با استفاده از سرویسهای آنلاین
اگر شرکت ارائه دهنده خدمات میزبانی شما شما امکان ایجاد کرونجاب مناسب را فراهم نمیکند یا تنظیم آن پیچیده است، میتوانید به جای آن از یک سرویس کرون شخص ثالث استفاده کنید.
این خدمات، سرویسهای اختصاصی هستند که به شما اجازه میدهند کرون جابها را با استفاده از یک رابط کاربری ساده تنظیم کنید. در زیر چند نمونه از بهترین ارائه دهنگان این خدمات آورده شده است.
EasyCron
cron-job.org
Cronitor
SetCronJob
برای این آموزش، ما از EasyCron استفاده میکنیم، زیرا استفاده از آن آسان است و پلن رایگان آن برای بیشتر کاربران مناسب است.از این گذشته این سرویس رابط کاربری بسیار سادهای دارد که باعث میشود هر شخص بتواند به راحتی از آن استفاده کند.
پس از ایجاد یک حساب کاربری رایگان، به صورت مستقیم وارد پنل میشوید که با استفاده از آن میتوانید با کلیک روی دکمهی “Cron Job +” در سمت چپ، یک کرونجاب جدید ایجاد کنید.

با کلیک بر روی دکمه گفتهشده، پنجرهی «Create Cron Job» برای شما باز میشود که ظاهری شبیه به تصویر زیر دارد.

این پنجره از چندین تب (سربرگ) مختلف تشکیلشده است که ما تنها با سربرگ اول آن (URL & Time) که به صورت پیشفرض باز است کار داریم. این سربرگ از قسمتهای مختلفی تشکیل شده است که در بخش ابتدایی آن باید آدرس زیر را در فیلد «URL to call» وارد کنید.
https://example.com/wp-cron.php?doing_wp_cron
همانطور که روشن است، مطمئن شوید که به جای “example.com”، آدرس وبسایت خود را وارد کردهاید.
سپس از منوی کشویی “When to execute”، گزینهی “Every 30 minutes” را انتخاب کنید. زمانبندیهای مختلفی در این بخش در دسترس است که پیشنهاد ما همان گزینه هر 30 دقیقه میباشد، با این حال شما میتوانید مطابق با نیازتان زمانبندی دیگری را نیز اتخاذ نمایید.
به عنوان آخرین بخش این سربرگ نیز پیشنهاد میکنیم که فیلد “Timezone” را به صورت دستی بر روی کشورمان ایران تنظیم کنید.
در پایان بر روی کلید آبی رنگ “Create Cron Job” کلیک کنید. به همین سادگی کرونجاب شما ایجاد میشود و میتوانید دیگر بدون نیاز به استفاده از سیستم پیشفرض wp-cron وردپرس، اقدام به برنامهریزی کارهای زمانبندیشده وبسایت خودتان نمایید.
نتیجهگیری
غیرفعال کردن WP-Cron و جایگزینی آن با کرونجاب واقعی باعث بهبود عملکرد سایت، کاهش مصرف منابع سرور و اجرای دقیقتر وظایف زمانبندیشده میشود.
تا وقتی که ایرادی جدی در سیستم پیشفرض اقدامات زمانبندیشده وبسایت وردپرسیتان وجود ندارد و WP-Cron از پس نیازهای شما بر میآید، نیازی به انجام اقدامات گفتهشده در این مقاله نیست، اما اگر وبسایت شما به خاطر تعداد کم بازدیدکنددگان از انجان اقدامات برنامهریزیشده عقب میماند یا اینکه به سبب حجم بالای بازدیدکنندگان و تعدد اجرای کرونجابها دچار مشکل شدهاید، میتوانید با استفاده از اقدامات گفتهشده در این نوشته، مشکلات موجود را یک بار برای همیشه حل کنید.