wp-cron چیست

wp-cron چیست

تا حالا فکر کردی چه جوری سایت وردپرست همیشه روون کار می‌کنه؟ مثل وقتی که خودش می‌ره دنبال آپدیت یا یه پست زمان‌بندی‌شده رو خودش منتشر می‌کنه؟ اینجاست که چیزی به اسم “کران وردپرس” (WordPress Cron) وارد می‌شه.

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

تو سیستم‌های سنتی، یه چیزی به اسم “کران جاب” هست که کارها رو طبق زمان مشخص انجام می‌ده. ولی وردپرس یه کم متفاوت عمل می‌کنه؛ میاد بازه‌های زمانی رو شبیه‌سازی می‌کنه تا اون کارها انجام بشن.

یعنی چی؟ یعنی هر بار که یکی سایتتو باز می‌کنه، وردپرس چک می‌کنه ببینه کاری زمان‌بندی شده که باید اجرا بشه یا نه. این کار باعث می‌شه سایتت همیشه به‌روز و مرتب بمونه.

اگه بلد باشی چطور این وظایف زمان‌بندی‌شده رو مدیریت کنی، می‌تونه تأثیر زیادی روی عملکرد سایتت بذاره. وقتی بدونی کجا رو دست‌کاری کنی و چی رو تغییر بدی، می‌تونی کنترل کامل این بخش رو به دست بگیری و سایتتو با نیازای خودت هماهنگ‌تر کنی.

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

آشنایی با wo-cron

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

wp-cron چیست؟

WordPress Cron که بهش WP-Cron هم می‌گن، یه قابلیت داخلی توی وردپرسه که کارهای زمان‌بندی‌شده رو مدیریت می‌کنه. کارهایی مثل چک کردن برای آپدیت‌ها، منتشر کردن پست‌هایی که براشون زمان مشخص کردی و چیزای دیگه.

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

حالا اگه سایتت بازدید زیادی نداشته باشه، ممکنه این روش خیلی قابل اعتماد نباشه و بعضی کارا دیر انجام بشن یا اصلاً اجرا نشن.

مقایسه WordPress Cron با Unix Cron

کران یونیکس یه برنامه‌ زمان‌بند توی سیستم‌عامل‌های شبه یونیکس (مثل لینوکس) هست که کارها رو طبق ساعت سیستم، تو زمان‌هایی که خودت تعیین می‌کنی، اجرا می‌کنه.

وظایف زمان‌بندی‌شده (Cron jobs) در ترمینال

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

نحوه عملکرد WordPress Cron

وردپرس کران اینطوری کار می‌کنه که یه سری کارای زمان‌بندی‌شده رو تو دیتابیس وردپرس ذخیره می‌کنه. این کارا می‌تونن هر چند وقت یه بار اجرا بشن، مثلاً هر ساعت یا دو بار تو روز.

هر بار که کسی وارد سایتت می‌شه، فایل wp-cron.php میاد چک می‌کنه ببینه کارایی هست که باید الان انجام بشن یا نه، و اونا رو اجرا می‌کنه.

تو می‌تونی با کمک هوک‌ها و فیلترها زمان‌بندی و کارای دلخواه خودت رو هم تعریف کنی.

مثلاً می‌تونی یه کار بذاری که دیتابیس رو بهینه‌سازی کنه یا ایمیل‌های اطلاع‌رسانی بفرسته.

اگه سایتت بازدید کمی داره یا می‌خوای کنترل دقیق‌تری روی زمان اجرای کارا داشته باشی، بهتره یه کران جاب واقعی روی سرورت تنظیم کنی که مرتب فایل wp-cron.php رو اجرا کنه تا مطمئن باشی همه کارا به موقع انجام می‌شن.

راه‌اندازی و مدیریت Cron job ها در وردپرس

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

استفاده از توابع WP-Cron

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

تابع add_action کارای سفارشی‌ت رو به WP-Cron وصل می‌کنه. مثلاً:

add_action('my_daily_event', 'my_daily_function');

بعد باید خود تابع رو هم تعریف کنی:

function my_daily_function() {
// کد خودت رو اینجا بنویس
}

به این شکل، کارت به برنامه زمان‌بندی اضافه می‌شه و طبق همون زمان اجرا می‌شه.

مدیریت  WordPress cron با استفاده از افزونه ها

مدیریت کران جاب‌ها با افزونه‌هایی مثل WP Crontrol خیلی راحت‌تر می‌شه.

اول از همه باید افزونه WP Crontrol رو از داشبورد وردپرس نصب و فعال کنی.

برو به بخش افزونه‌ها – افزودن افزونه تازه
جستجو کن “WP Crontrol”
بعد روی «همین حالا نصب کن» کلیک کن و بعدشنصب افزونه وردپرس برای مدیریت کران

بعد از اینکه افزونه رو فعال کردی، برو به قسمت ابزارها – رویدادهای کران (Cron Events).
اینجا می‌تونی لیست تمام کارای زمان‌بندی‌شده (کران جاب‌ها) رو ببینی.

نمایش لیست وظایف زمان بندی_شده وردپرس در افزونه WP Crontrol

این افزونه‌ها یه رابط کاربری ساده در اختیارت می‌ذارن که بدون نیاز به کدنویسی، بتونی کران‌جاب‌هات رو اضافه کنی، ویرایششون کنی یا مدیریت‌شون کنی.

ایجاد بازه‌های زمانی سفارشی

گاهی وقتا بازه‌های پیش‌فرضی که وردپرس برای کران‌جاب‌ها در نظر گرفته (مثل هر ساعت، روزی دو بار یا روزانه)، برات مناسب نیستن. اگه می‌خوای مثلاً هر ۵ دقیقه یه بار یه کاری انجام بشه، باید یه بازه زمانی سفارشی درست کنی.

برای این کار باید یه تکه کد به فایل functions.php قالبت اضافه کنی.

از فیلتر cron_schedules استفاده می‌کنی تا بازه جدید رو تعریف کنی. مثلاً:

function example_add_cron_interval( $schedules ) {
    $schedules['every_five_minutes'] = array(
        'interval' => 300, // یعنی ۳۰۰ ثانیه = هر ۵ دقیقه
        'display'  => __( 'Every 5 Minutes' )
    );
    return $schedules;
}
add_filter( 'cron_schedules', 'example_add_cron_interval' );

بعدش می‌تونی با استفاده از wp_schedule_event کاری رو تعریف کنی که طبق این بازه جدید اجرا بشه.

ویرایش و حذف cron job

ویرایش یا حذف کران جاب‌ها با افزونه‌هایی مثل WP Crontrol خیلی ساده است.

برای ویرایش یک کران جاب:

  • به بخش ابزارها – رویدادهای کرون برو

  • کاری که می‌خواهی ویرایش کنی پیدا کن

  • روی ویرایش کلیک کن

  • می‌توانی هوک، زمان‌بندی یا آرگومان‌ها را تغییر بدهی

برای حذف یک کران جاب:

  • همچنان در ابزارها – رویدادهای کرون باش

  • کار مورد نظر را پیدا کن

  • روی حذف کلیک کن

  • این کار باعث می‌شود که آن کران جاب از برنامه حذف شود

1 دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *