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

نحوه راه اندازی Cron Job در وردپرس

پیش از هر چیز باید توجه داشته باشیدکه WP-Cron کمی با کرون سیستم متفاوت است و هر کدام مزایا و معایب خاص خود را دارند. به عنوان مثال، WP-Cron  در وردپرس به صورت مداوم اجرا می‌شود اما در سیستم بدین صورت نیست.

افزونه رایگان و محبوب WP Control یک ابزار عالی برای ایجاد و مدیریت کرون جاب در وردپرس است که به وسیله آن به راحتی می‌توانید اقدامات مورد نظر خود را روی وردپرس انجام دهید. این افزونه بیش از 200 هزار نصب فعال با امتیاز 4.5 از 5 دارد. بسیاری از کاربران جامعه وردپرس واقعا این پلاگین را دوست دارند.

بیشتر بخوانید: آموزش ست کردن کرون جاب (Cron Job) در سی پنل

WP-Cron Schedules

برای انجام این کار در ابتدا شما باید پلاگین WP Control را در سایت خود نصب کنید. این افزونه قدرتمند را می‌توانید از مخزن وردپرس دریافت کنید.

پس از فعال‌سازی، می‌توانید برنامه‌های زمان‌بندی Cron را در قسمت « Cron Schedules» از داخل تنظیمات داشبورد وردپرس خود تغییر دهید. توجه داشته باشید که این افزونه به صورت پیش‌فرض یک زمان‌بندی پیش فرض اضافی به صورت هفتگی ایجاد می‌کند اما می‌توانید برنامه تنظیمات دلخواه خود را هم ایجاد کنید مانند 21600 ثانیه در هر 6 ساعت.

WP-Cron Schedules

این فواصل زمانی را می‌توان با کد زیر ایجاد کرد:

add_filter( 'cron_schedules', 'example_add_cron_interval' );

function example_add_cron_interval( $schedules ) {
 $schedules['five_seconds'] = array(
 'interval' => 5,
 'display' => esc_html__( 'Every Five Seconds' ),
 );

return $schedules;
 }

WP-Cron Events

در این قسمت می‌توانید فرایندهایی که در Cron Schedules تنظیم کرده‌اید را مشاهده کنید.

WP-Cron Events

با کلیک بر روی Run Now در کنار نام اکشن موردنظر، یک رویداد Cron را اجرا می‌کنید. ممکن است لازم باشد یک رویداد Cron را چندین بار اجرا کنید.

WP-Cron Events

بیشتر بخوانید: ایجاد کرون جاب (Cron Job) در دایرکت ادمین

تغییر رویداد Cron

همچنین می‌توانید رویدادهای Cron را با کلیک بر روی «Edit» ویرایش کنید. نام اقدام، آرگومان‌ها، اجرای بعدی و تکرارهای برنامه ریزی شده را در این قسمت می‌توانید تغییر دهید.

تغییر رویداد Cron

افزودن رویداد Cron

شما به‌‌‌‌‌راحتی می‌‌‌‌‌توانید Cron موردنظر خود را در وردپرس بسازید. برای این منظور به صفحه ابزارها > Cron Event رفته و روی تب “Add Cron Event” کلیک کنید.

افزودن رویداد Cron

در پنجره باز شده مانند تصویر بالا مراحل زیر را انجام دهید:

انتخاب نام برای رویداد موردنظر

  •   بین حروف نامی که انتخاب می‌‌‌‌‌کنید نباید فاصله (space) باشد.
  •   از متغیرهای مجاز برای نام‌‌‌‌‌گذاری استفاده کنید.

ارائه استدلال

  • اگر رویداد مورد نظرتان نیاز به استدلال خاصی دارد، می‌‌‌‌‌توانید استدلال مورد نظرتان را در فیلد دوم وارد نمایید.

مشخص کردن زمان‌‌‌‌‌بندی

  • در این قسمت باید زمان بعدی اجرای دستورالعمل و دوره تکرار اجرا را مشخص نمایید.

پس انجام مراحل بالا برای ذخیره کرون ایجادشده روی دکمه “Add Cron Event” کلیک نمایید.

اگر این کرون اجرا شود هیچ اجرای خاصی را مشاهده نمی‌کنید. برای اجرای یک کرون باید به وردپرس بگویید چه دستورالعملی اجرا شود که کد مربوط به اجرا را در فایل فانکشن می‌نویسید.

به‌عنوان‌مثال اگر بخواهیم در زمان اجرای یک رویداد خاصی، ایمیلی برایمان ارسال شود کد زیر را باید به فایل فانکشن اضافه کنید.

if ( ! wp_next_scheduled( 'wpb_custom_cron' ) ) {

  wp_schedule_event( time(), 'hourly', 'my_task_hook' );

}

add_action( 'wpb_custom_cron', 'wpb_custom_cron_func' );

 

function wpb_custom_cron_func() {

  wp_mail( 'you@example.com', 'Automatic email', 'Automatic scheduled email from WordPress to test cron');

}

حال روی گزینه “Run Now” در ردیف مربوط به رویداد خود کلیک می‌کنیم که اگر تمام مراحل را به‌درستی انجام داده باشید یک ایمیل به آدرسی که وارد کرده‌اید ارسال می‌شود.

WP-Cron WP-CLI

همچنین می‌توانید رویدادهای WP-Cron را در WP-CLI مدیریت کنید. به عنوان مثال، دستور زیر لیست رویداد cron فعلی را به شما می دهد.

wp cron event list

WP-Cron WP-CLI

بیشتر بخوانید: تغییر رمز عبور و نام‌ کاربری وردپرس از طریق PhpMyAdmin

سخن پایانی

توجه داشته باشید که برای استفاده از کرون‌ها شما باید سطح متوسطی از PHP و سطح پیشرفته‌ای از وردپرس را آموزش‌دیده باشید.

منبع:

How To Create and Modify a WordPress Cron Job