مدیریت زمان و انجام وظایف بهینه در هر وبسایت، امری ضروری و حیاتی به شمار میرود. در سیستم مدیریت محتوای وردپرس، cron jobs یا زمانبندی وظایف به شما این امکان را میدهند که عملیات خاصی را در زمانهای معیّن انجام دهید. در این مطلب از سری مطالب آموزشی وبلاگ پارس وی دی اس به نحوه مشاهده و مدیریت Cron Jobs در وردپرس میپردازیم.
این عملیات میتواند شامل انتشار خودکار نوشتهها، ارسال ایمیلهای خبری، بهروزرسانی منظم محتوا و موارد مشابه باشد. با این حال، نظارت و مدیریت درست این وظایف بسیار مهم بوده و به فرایند بهینهسازی عملکرد وبسایت کمک میکند.
این مقاله به بررسی نحوه مشاهده و مدیریت cron jobs در وردپرس خواهد پرداخت. با استفاده از ابزارها و نکات ارائهشده، شما میتوانید به سادگی وظایف برنامهریزیشده را مشاهده کرده و در صورت نیاز آنها را تغییر یا حذف کنید.
در این راهنما، روشهای مختلفی برای دسترسی به لیست cron jobs و نیز نحوه بهینهسازی عملکرد آنها بررسی خواهد شد تا کاربران بتوانند به طور مؤثر زمانبندی و عملکرد وبسایت خود را مدیریت کنند.
وردپرس کرون چیست؟
WordPress Cron (WP-Cron) سیستمی است که به وردپرس اجازه میدهد تا وظایفی را که معمولاً به عنوان Cron jobs شناخته میشوند، زمان بندی و مدیریت کند. نمونههایی از این وظایف شامل انتشار پستهای زمانبندیشده، انجام پشتیبانگیری و بررسی بهروزرسانیها است.
WP-Cron با بررسی اینکه کدام وظایف برنامه ریزی شده باید هر بار که یک صفحه بارگذاری میشود اجرا شود، عمل میکند. در حالی که این مکانیسم در اکثر مواقع به خوبی کار میکند، اما یک اشکال قابل توجه دارد: اگر در زمان اجرای یک کار زمان بندی شده هیچ صفحهای بارگذاری نشود، میتواند منجر به خطا شود.
با این حال، با وجود این محدودیت، وظایف در نهایت، حداقل با بارگذاری صفحه بعدی، بر اساس موقعیت آنها در صف اجرا خواهند شد.
چگونه Cron Jobs را مدیریت کنیم؟
با افزونه WP Crontrol، میتوانید به راحتی کارهای کرون را در سایت وردپرس خود مشاهده، اضافه و تغییر دهید.
برای استفاده از این افزونه، به Plugins > Add New در داشبورد وردپرس خود بروید و افزونه WP Crontrol را جستجو کنید.
سپس پلاگین را نصب و فعال کنید.
پس از اتمام نصب، میتوانید به مدیریت کارهای کرون در سایت وردپرس خود ادامه دهید.
مشاهده رویدادهای کرون وردپرس
برای مشاهده رویدادهای Cron WordPress، به بخش Tools > Cron Events در داشبورد وردپرس خود بروید.
در اینجا، میتوانید تمام رویدادهای برنامه ریزی شده در وب سایت خود را مشاهده کنید.
رویدادها در دستههای مختلف سازماندهی میشوند:
- رویدادهای بدون عمل
- رویدادهای اصلی وردپرس
- رویدادهای سفارشی
در ستون اول، قلابهایی را میبینید که برای اجرای رویدادهای Cron استفاده میشوند. نام قلاب به شما ایده میدهد که هر رویداد برنامه ریزی شده چه میکند. قلابهایی که با پیشوند “wp” شروع میشوند، قلابهای رویداد هسته وردپرس هستند و نمیتوان آنها را حذف کرد.
ستون دوم دارای بخش “Arguments” است که آرگومانهای ارسال شده به هر هوک را نشان میدهد. اگر یک قلاب هیچ آرگومان نداشته باشد، یک مکان نگهدار “None” نشان داده میشود.
ستون سوم، “Next Run” نشان میدهد که رویداد بعدی Cron چه زمانی رخ میدهد، همراه با فاصله زمانی تا اجرای بعدی.
ستون چهارم، “Action“، اقدامات خاصی را که قلابهای Cron انجام خواهند داد، تشریح میکند.
در نهایت، ستون “Recurrence” مشخص میکند که رویداد چقدر تکرار یا تکرار میشود.
ویرایش رویدادهای Cron
برای ویرایش یک رویداد Cron، نشانگر را روی آن نگه دارید و روی پیوند ویرایش مرتبط با رویداد کلیک کنید.
سپس به بخش “Edit Cron Event” هدایت خواهید شد. در اینجا میتوانید رویداد را به دلخواه خود سفارشی کنید.
افزودن یک رویداد جدید Cron
ایجاد یک رویداد جدید Cron با کلیک بر روی دکمه “Add New” در قسمت Cron Events.
سپس به صفحه بعدی هدایت خواهید شد که در آن بخش «Add Cron Event section» را دارید.
در این بخش، لطفاً نوع رویداد را مشخص کنید و مشخص کنید که یک رویداد استاندارد است یا یک رویداد PHP Cron.
بعد، یک نام قلاب ارائه دهید. نام قلاب باید مطابق با قرارداد نامگذاری وردپرس باشد. برای مثال ما از نام قلاب “wpb_publish_post” استفاده خواهیم کرد.
در بخش آرگومانها میتوانید هر آرگومان لازم را در یک آرایه وارد کنید. با این حال، این مرحله اختیاری است.
در بخش «Next Run»، زمان وقوع رویداد را مشخص کنید و در بخش «Recurrence» تعداد دفعات وقوع رویداد را مشخص کنید.
در زیر نمونهای از جزئیاتی که در این مثال ارائه خواهیم داد، آورده شده است:
پس از افزودن رویداد، نمای رویداد را از لیست رویدادها به شکل زیر خواهیم داشت:
اکنون، کد PHP را که تعیین میکند قلاب چه کاری انجام میدهد، به فایل functions.php قالب خود اضافه کنید.
در مورد ما در اینجا، ما کد را برای انتشار یک پست خاص اضافه میکنیم. برای این کار باید کد زیر را اضافه کنید:
function publish_post_func()
{
//Assign your Post ID
$post = 717;
//Run the publish post function $result = wp_publish_post($post);
}
add_action( ‘wpb_publish_post’, ‘publish_post_func’ );
این کد برای انتشار یکی از پستهای ما، بهویژه پست با شناسه 717 طراحی شده است. شما میتوانید از هر شناسه پستی که انتخاب میکنید استفاده کنید، تا زمانی که با یک پست موجود در وبسایت شما مطابقت داشته باشد.
لطفاً توجه داشته باشید که ما تکرار رویداد را روی “Non-repeating” تنظیم کردهایم زیرا یک پست فقط یک بار میتواند منتشر شود.
زمانی که به زمان مشخص شده «Next Run» رسید، پست منتشر خواهد شد. در زیر تصویری از این فرآیند آورده شده است:
برنامه ریزی cron
افزونه WP Crontrol شامل زمانبندیهای پیشفرض Cron است که میتوانید آنها را در قسمت تنظیمات > برنامههای زمانبندی در داشبورد وردپرس خود پیدا کنید. اگر افزونههایی دارید که زمانبندیهای سفارشی را اضافه میکنند، این افزونهها نیز در این بخش نمایش داده میشوند. علاوه بر این، شما این امکان را دارید که برنامههای سفارشی خود را در اینجا ایجاد کنید. در زیر نمونهای از تصویر این بخش آورده شده است:
اگر میخواهید برنامهها را به صورت دستی از طریق کد اضافه کنید، این نیز قابل دستیابی است. در زیر یک کد نمونه برای اضافه کردن فاصله کرون شصت ثانیه وجود دارد. میتوانید کد را به فایل function.php قالب خود اضافه کنید:
add_filter( ‘cron_schedules’, ‘cron_interval’ );
function cron_interval( $schedules ) {
$schedules[‘sixty_seconds’] = array(
‘interval’ => 60,
‘display’ => esc_html__( ‘Every Sixty Seconds’ ),
);
return $schedules;
}
پس از اضافه شدن، در لیست Cron Schedules نمایی از برنامه خواهید داشت:
غیرفعال کردن Wp Cron
در سایتهای پربازدید، کرون پیشفرض وردپرس میتواند بر عملکرد وبسایت شما تأثیر منفی بگذارد، به ویژه از نظر زمان بارگذاری صفحه. در این موارد، غیرفعال کردن کرون وردپرس و استفاده از سرور کرون به جای آن ممکن است مفید باشد.
برای غیرفعال کردن کرون پیشفرض وردپرس، مراحل زیر را دنبال کنید:
از طریق FTP به فایلهای سایت خود دسترسی داشته باشید. میتوانید از نرم افزار FTP مانند FileZilla یا یک کنترل پنل مانند سی پنل که توسط سرویس میزبانی شما ارائه میشود استفاده کنید.
به دایرکتوری ریشه فایلهای وردپرس خود بروید و فایل wp-config.php را برای ویرایش باز کنید.
در داخل فایل، کد زیر را درست بالای خط “/* That’s all, stop editing! Happy publishing. */”
define('DISABLE_WP_CRON', true);
در زیر یک اسکرین شات نمونه در این مورد آمده است:
جمع بندی
در نتیجه، مدیریت کرون جابز وردپرس برای عملکرد و عملکرد بهینه یک وب سایت وردپرس ضروری است. با درک نحوه عملکرد cron job در اکوسیستم وردپرس، کاربران میتوانند به طور مؤثر وظایف مختلفی مانند پستهای زمان بندی شده، پشتیبان گیری و به روز رسانی را خودکار کنند و از تجربه کاربری یکپارچه اطمینان حاصل کنند.
استفاده از ابزارهایی مانند WP Crontrol یا افزونههای مرتبط، دید و کنترل بر وظایف برنامهریزیشده را افزایش میدهد و به کاربران این امکان را میدهد تا کارهای cron خود را به راحتی کنترل کنند و در صورت بروز مشکلات احتمالی را عیبیابی کنند.
بهعلاوه، بهینهسازی cron job میتواند منجر به بهبود عملکرد سایت شود، زیرا اضافه بار سرور را کاهش میدهد و تأخیر ناشی از وظایف بیش از حد یا پیکربندی نادرست را به حداقل میرساند. مدیران وبسایت با اجرای بهترین شیوهها، مانند شناسایی cron job استفاده نشده یا غیر ضروری و زمانبندی آنها در ساعات غیر اوج مصرف، میتوانند کارایی سایت خود را به میزان قابل توجهی بهبود بخشند.
به طور کلی، انجام اقدامات پیشگیرانه برای مدیریت و ساده سازی cron job وردپرس نه تنها عملکرد سایت را افزایش میدهد، بلکه به ایجاد یک وب سایت قوی و خوب در دراز مدت کمک میکند.
سؤالات متداول
cron job وردپرس چیست و چگونه کار میکند؟
وردپرس cron jobها کارهای برنامه ریزی شدهای هستند که به طور خودکار در فواصل زمانی مشخص در سایت وردپرس شما اجرا میشوند. آنها توسط سیستمی به نام WP-Cron مدیریت میشوند که کارهای کرون سمت سرور را شبیه سازی میکند. به جای تکیه بر یک سیستم cron سنتی که به طور مستقل اجرا میشود، WP-Cron هنگامی که شخصی از سایت شما بازدید میکند فعال میشود. این بدان معناست که وظایف برنامه ریزی شده، مانند انتشار پستهای زمان بندی شده یا بررسی به روز رسانی افزونهها، بر اساس فعالیت کاربر در پس زمینه اجرا میشوند.
چگونه میتوانم لیست cron jobs فعلی را در سایت وردپرس خود مشاهده کنم؟
شما میتوانید با استفاده از افزونهای مانند “WP Crontrol” کارهای cron فعلی را در سایت وردپرس خود مشاهده کنید. پس از نصب، به بخش “ابزار” در داشبورد وردپرس خود بروید و “Cron Events” را انتخاب کنید. با این کار فهرستی از تمام کارهای cron برنامه ریزی شده، از جمله زمان اجرای بعدی، تکرار، و هر اقدام مرتبط نمایش داده میشود.
اگر متوجه شدم که کارهای کرون وردپرس من به درستی کار نمیکند، چه کاری باید انجام دهم؟
اگر کرون جابزهای وردپرس شما به درستی اجرا نمیشود، میتوانید چندین مرحله عیب یابی را انجام دهید. ابتدا بررسی کنید که آیا ویژگی WP-Cron در فایل wp-config.php شما غیرفعال است یا خیر. اگر اینطور است، میتوانید با حذف یا نظر دادن خطی که میگوید define(‘DISABLE_WP_CRON’، true) آن را فعال کنید. علاوه بر این، راه اندازی یک Cron Job سمت سرور واقعی را برای راه اندازی WP-Cron در فواصل زمانی منظم (مثلاً هر 5 دقیقه) در نظر بگیرید، که میتواند قابلیت اطمینان را بهبود بخشد. در نهایت، استفاده از افزونه “WP Crontrol” میتواند به شما در تشخیص و اصلاح هر گونه کار مشکل دار cron کمک کند.