غیرفعال کردن WP-Cron وردپرس و تنظیم Cron Job واقعی هاست

می خواهید wp-cron وردپرس را غیرفعال کنید و آن را با کران جاب واقعی خود جایگزین کنید؟ جایگزین کردن wp-cron با کرون جاب واقعی به شما کمک می‌کند وظایف زمانبندی‌شده سایت خود را به طور قابل اعتمادتری اجرا کنید و همچنین بار سرور را برای سایت‌های پربازدید کاهش دهید. در این مقاله، یاد می‌گیرید که wp-cron چیست و سپس به صورت مرحله به مرحله نحوه غیرفعال کردن wp-cron وردپرس و جایگزین کردن آن با یک کرون جاب واقعی را در هاست سی‌پنل و دیرکت ادمین به شما آموزش خواهیم داد.
غیرفعال کردن WP-Cron وردپرس و تنظیم Cron Job واقعی هاست

آیا تا امروز به این فکر کرده‌اید که تسک‌های زمانبندی شده در وردپرس که باید سر تایمی خاص یا در دفعات و زمان‌های منظمی اجرا شوند چگونه کار می‌کنند؟ یا بطور مثال اگر مقاله‌ای در وردپرس نوشته‌اید و آن را تنظیم کرده‌اید که فردا سر ساعت خاصی بطور خودکار منتشر شود، چگونه وردپرس آن را دقیق سر آن تایم و روز خاص منتشر می‌کند؟

WP-Cron چیست؟

وردپرس دارای یک فایل به نام WP-Cron است که وظیفه انجام برنامه‌ریزی و زمانبندی فعالیت‌های مختلف برای سایت ما را بر عهده دارد. این فایل یک کرون واقعی نیست ولی کارهای cron را انجام می دهد. این فایل wp-cron.php به عنوان کران مجازی برای خودکار کردن کارهایی مانند موارد زیر را در وردپرس انجام می‌دهد:

  • انتشار پست‌های زمان‌بندی‌شده
  • بررسی به‌روزرسانی افزونه یا قالب
  • ارسال ایمیل‌های اطلاع‌رسانی
  • بررسی اعلان‌های افزونه‌ها
  • و موارد دیگر

به عنوان مثال، فرض کنید شما پستی را برای انتشار در روز چهارشنبه هفته آینده ساعت 9:30 صبح برنامه‌ریزی کرده‌اید. wp-cron اطمینان حاصل می‌کند که این اتفاق به موقع و سر تایم برنامه‌ریزی شده رخ دهد.

هرچه لیست کارهای بیشتری برای بررسی وجود داشته باشد و محتوای سایت شما حجیم‌تر باشد، بار بیشتری روی پردازنده و منابع سرور شما گذاشته می‌شود.

نام کران (کرون) از سیستم یونیکس برای زمان‌بندی کارها گرفته شده است و به هر دستوری که در بازه‌های زمانی خاص به صورت خودکار اجرا شود گفته می شود.

زمانی که کاربری برای بازدید وارد هر کدام از صفحات سایت شما می‌شود (چه در جلوی سایت و چه در پنل مدیریت) پردازش WP-Cron.php هم اجرا می شود و به بررسی تمام وظایفی که باید بررسی شوند می‌پردازد و اگر وظیفه‌ای وجود داشته باشد، آن را اجرا می کند. نکته منفی این فایل اینست که اگر سایت شما بازدیدی نداشته باشد اجرای این فایل انجام نمی‌شود و تمامی وظایف و تسک‌های زمان‌بندی شده انجام نشده می‌مانند.

درواقع وردپرس فقط با هر بار بارگذاری صفحه، موارد زمان‌بندی‌شده را بررسی می‌کند که برای سایت‌های با ترافیک کم تا متوسط عالی است، اما در سایت‌های شلوغ، این عمل اسکن مداوم می‌تواند سرعت کار و سایت وردپرسی شما را به میزان قابل توجهی کاهش دهد.

برای مثال، فرض کنید شما آن پست را برای انتشار در روز چهارشنبه هفته آینده ساعت 9:30 صبح برنامه‌ریزی کرده‌اید، اما سایت شما در آن زمان بازدید کننده‌ای ندارد. در واقع، سایت شما تا ساعت 11:30 صبح بازدید بعدی خود را دریافت نمی‌کند. بله، در چنین رخداد و اتفاقی، پست شما تا ساعت 11:30 صبح منتشر نمی شود، زیرا زمانی که هیچ بازدیدکننده ای وجود ندارد، wp-cron قادر به اجرا نمی‌باشد. همچنان زمان انتشار را به عنوان 9:30 صبح نشان می دهد اما تا ساعت 11:30 صبح به طور واقعی در سایت شما نمایش داده نمی‌شود.

درک چگونگی عملکرد WP-CRON وردپرس

کران جاب وردپرس (WP-CRON) هر بار که صفحه‌ای از سایت لود می‌شود، رویدادهای زمان‌بندی شده (scheduled events) را بررسی می‌کند. این روش برای حجم متوسط و ثابتی از ترافیک به خوبی کار می‌کند، اما در دو حالت افراطی با مشکلاتی مواجه می شود:

ترافیک بالا: اگر سایت ترافیک بسیار زیادی دریافت کند، دائماً در حال بررسی برنامه‌زمان‌بندی WP-CRON خود است، که باعث افزایش کار مورد نیاز سرور و تأثیر منفی بر عملکرد می شود. WP-Cron زمانی که بازدیدکنندگان همزمان در سایت خود دارید، می تواند چندین بار اجرا شود. برای مثال، اگر همزمان 50 بازدیدکننده داشته باشید، WP-Cron ممکن است 50 بار به طور همزمان اجرا شود. فرض کنید گروهی از بازدیدکنندگان روی یک لینک یکسان کلیک کنند. در این صورت، WP-Cron می تواند چندین بار همزمان اجرا شود، که باعث افزایش زمان بارگذاری صفحه و احتمالاً تأثیرگذاری بر عملکرد کلی سایت شما می شود.

این نکته مهم است که حتی ربات‌های موتورهای جستجو نیز زمانی که در پاسخ به پرسش‌های جستجو، سایت شما را crawl می کنند، به عنوان بازدیدکننده در نظر گرفته می شوند. این بدان معناست که WP-Cron می تواند توسط بازدیدهای ربات نیز فعال شود و بر عملکرد سایت شما تأثیر بیشتری بگذارد.

وردپرس سعی می کند با محدود کردن اجرای آن به بیش از یک بار در هر 60 ثانیه، این موضوع را محدود کند، اما به دلایل فنی مختلف، مانند بازدیدهای همزمان که هر دو wp-cron را فعال می‌کنند، همچنان می تواند باعث کاهش عملکرد سایت وردپرسی شما شود.

ترافیک پایین: برعکس، اگر ترافیک کم یا اصلاً وجود نداشته باشد، سایت موارد زمان‌بندی‌شده خود را به اندازه کافی سریع بررسی نمی‌کند و ممکن است کارهای زمان‌بندی‌شده، مانند بکاپ‌گیری از یک افزونه یا یک پست زمان‌بندی‌شده را از دست بدهد. WP-Cron به تعاملات کاربر با وب سایت شما وابسته است. اگر کسی در زمان مشخص شده برای اجرای یک کار برنامه ریزی شده از سایت شما بازدید نکند، WP-Cron اجرا نخواهد شد و باعث تأخیر در اجرای کار می شود. این تأخیر در داشبورد وردپرس شما به عنوان “تأخیر” نمایش داده می شود و به طور بالقوه بر برنامه انتشار محتوای شما تأثیر می گذارد.

اکنون راه حل این مشکل برای تمامی سایت‌ها این است که WP-Cron وردپرس را غیرفعال کنید و در عوض، وظایف خود را با استفاده از یک کران سیستمی زمان‌بندی کنید تا به جای هر بار بارگذاری صفحه، در فواصل زمانی مشخص اجرا شوند و بدین ترتیب عملکرد سایت شما را بهبود بخشید. با یک کرون جاب واقعی، می‌توانید وظایف خود را برای اجرا در هر X دقیقه تنظیم کنید، بدون توجه به اینکه بازدید وجود داشته باشد یا خیر.

اصلاح این عملکرد یک فرآیند دو بخشی است:

  • جلوگیری از WP-CRON برای بررسی مداوم رویدادها با غیرفعال کردن wp-cron داخلی وردپرس
    باید ویژگی داخلی wp-cron را غیرفعال کنید تا وردپرس فایل wp-cron.php را در هر بازدید اجرا نکند. برای انجام این کار، تنها کافی است یک خط کد به فایل wp-config.php سایت خود اضافه کنید.
  • ایجاد یک کران استاندارد که هر رویداد زمان‌بندی شده را در سایت شما اجرا کند با راه‌اندازی کرون جاب اختصاصی
    شما نیاز دارید تا کرون جاب خود را برای فراخوانی wp-cron.php در زمان‌بندی دلخواه خود راه‌اندازی کنید. با این کار، می‌توانید wp-cron.php را در یک زمان‌بندی خاص اجرا کنید، صرف نظر از اینکه سایت شما ترافیک دریافت می‌کند یا خیر.

غیرفعال کردن WP-CRON وردپرس

با استفاده از مراحل زیر می توانیم WP-Cron (wp-cron.php) را در فایل wp-config.php غیرفعال کنیم:

  1. به کنترل پنل هاست خود مراجعه کرده و وارد بخش فایل منیجر هاست شوید. در مسیر نصب وردپرس وردپرس (root directory) فایل wp-config.php را پیدا کنید و آن را به حالت ویرایش ببرید (همان پوشه public_html که حاوی پوشه‌های wp-admin و wp-content و غیره است).

با توجه به اینکه فایل wp-config.php یک فایل پیکربندی کلیدی است، اکیدا توصیه می کنیم قبل از ایجاد هرگونه تغییر، از سایت خود پشتیبان تهیه کنید (یا حداقل یک کپی از فایل اصلی wp-config.php تهیه کنید تا در صورت بروز هر مشکلی بتوانید نسخه پشتیبان را جایگزین کنید).

مراجعه به فایل منیجر هاست سی‌پنل و یافتن فایل wp-config.php در Root وردپرس
مراجعه به فایل منیجر هاست سی‌پنل و یافتن فایل wp-config.php در Root وردپرس
  1. کد زیر را به کپی کرده و به فایل wp-config.php اضافه کنید. شما باید این کد را قبل از عبارت /* That's all, stop editing! Happy publishing. */ قرار دهید.
define('DISABLE_WP_CRON', true);
قرار دادن کد غیرفعال سازی WP-Cron وردپرس در فایل wp-config.php
قرار دادن کد غیرفعال سازی WP-Cron وردپرس در فایل wp-config.php
  1. اکنون تغییرات را ذخیره نمایید. این کار باعث می‌شود کران در هر بار بارگذاری صفحه اجرا نشود، بلکه فقط زمانی که مستقیماً از طریق wp-cron.php آن را فراخوانی می‌کنید اجرا می‌شود. بعد از انجام این کار، وردپرس دیگر فایل wp-cron.php را در هنگام بازدید افراد از وب سایت شما فراخوانی نخواهد کرد.

توجه : در هاست دایرکت ادمین و پلسک و غیره نیز دقیقا مسیر و عملکرد به همین ترتیب اشاره شده بالا است.

ایجاد و تنظیم کران جاب (Cron Job) در هاست سی‌پنل

  1. وارد محیط کنترل پنل هاست سی‌پنل خود شوید و در بخش Advanced گزینه Cron Jobs را انتخاب کنید.
رفتن به قسمت Cron Jobs هاست سی‌پنل
رفتن به قسمت Cron Jobs هاست سی‌پنل
  1. اکنون در قسمت Add New Cron Job در از منو آبشاری فیلد Common Settings گزینه Once Per Minute(* * * * *) را انتخاب نمایید و سپس کد زیر را در بخش Command وارد نموده و پس از تصحیح کد و قرار دادن نام دامنه خود بجای yourdomain.com دکمه Add New Cron Job را بزنید تا کران جاب جدید ایجاد شود.
wget -q -O - https://yourdomain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
ایجاد Cron Job جدید در هاست Cpanel
ایجاد Cron Job جدید در هاست Cpanel

بطور خلاصه ما در کانفیگ بالا به سیستم کران جاب هاست گفتیم که هر 1 دقیقه یک بار فایل wp-cron.php ما را اجرا کن.

  1. با زدن دکمه Add New Cron Job و ظاهر شدن پیغام موفقیت‌آمیز cPanel successfully added the cron job کار به پایان رسیده است و اکنون شما در قسمت Current Cron Jobs یک کران جاب فعال دارید. اکنون سایت وردپرسی شما به طور ایمن و در فواصل زمانی تعیین‌شده وظایف زمان‌بندی‌شده (scheduled events) را از طریق اسکریپت wp-cron.php اجرا کند.

ایجاد کرون جاب (Cron Job) در هاست دایرکت ادمین

  1. وارد محیط کنترل پنل هاست دایرکت ادمین خود شوید و در بخش Advanced Features گزینه Cron Jobs را انتخاب کنید.
کران جاب در دایرکت ادمین
کران جاب در دایرکت ادمین
  1. اکنون در این بخش بر روی دکمه Create Cron Job کلیک کنید.
ایجاد کرون جاب جدید در دایرکت ادمین
ایجاد کرون جاب جدید در دایرکت ادمین
  1. اکنون در این قسمت مطابق روند و کار توضیح داده شده در بخش سی‌پنل عمل کنید و مقادیر و دستور را همان مقادیر قرار داده و در نهایت روی دکمه Create کلیک کنید تا کران جاب شما ایجاد شود.
تعیین فرکانس و زمانبندی اجرای کرون جاب و وارد کردن دستور در هاست دایرکت ادمین
تعیین فرکانس و زمانبندی اجرای کرون جاب و وارد کردن دستور در هاست دایرکت ادمین

به همین راحتی ما توانستیم سیستم WP-Cron وردپرس را غیرفعال کنیم و یک Cron Job واقعی در هاست خود ایجاد کنیم تا کلیه اعمال و کارهای زمانبندی شده وردپرس ما را مدیریت نماید و نتیجه آن باعث عملکرد صحیح و سرعت بالای سایت ما خواهد شد.

اگر در هر مرحله و قسمت اشکالی دارید و یا هر سوالی در خصوص غیرفعال کردن WP-Cron وردپرس و تنظیم Cron Job واقعی هاست دارید در قسمت کامنت‌ها عنوان کنید و بپرسید تا سریعا پاسخگوی شما باشیم.

به این مقاله امتیاز دهید
(برحسب میزان رضایت خود از محتوای این مقاله، به آن از 1 تا 5 ستاره دهید)

امتیاز 5 از 1 رای

اولین نفری باش که امتیاز خودت رو ثبت می‌کنی!

پرسش و دیدگاه

پس از بررسی سریع و پاسخگویی توسط کارشناسان، به شما اطلاع‌رسانی می‌گردد.

اشتراک در
اطلاع‌رسانی به من هنگامی که :
guest
0 دیدگاه
بازخورد (Feedback) های اینلاین
دیدن تمامی دیدگاه‌ها
جدیدترین مقالات

5 مقاله اخیر از این قسمت برای شما در دسترس است

سفارشی سازی صفحه ورود به پیشخوان وردپرس
سفارشی سازی صفحه ورود به پیشخوان وردپرس
حذف نسخه فایل‌های CSS و JS در وردپرس
حذف متن فوتر ادمین (admin footer text) و نسخه (update footer) وردپرس
حذف متن فوتر ادمین (admin footer text) و نسخه (update footer) وردپرس
جلوگیری از کامنت اسپم در وردپرس
جلوگیری از کامنت اسپم در وردپرس
افزایش سرعت پیشخوان وردپرس با محدود کردن درخواست‌های WP HTTP خارجی
محدود کردن درخواست‌های WP HTTP خارجی وردپرس
فهرست
Search