با سلام خدمت دوستان عزیز وردپرسی!
تمامی نرمافزارها برای راحتی کار بشر ساخته شده و با هدف اینکه کارها به صورت اتوماتیک انجام گیرد روز به روز در حال افزایش قابلیتها و امکانات
بر روی همین محوریت میباشد.
یکی از این قابلیتها scheduling یا زمانبندی است که در آن ما یک سری دستورالعمل و وظایف را به برنامه میدهیم تا بر اساس زمانبندی صورت گرفته اجرا شوند.
در سیستم عاملهای یونیکس به این قابلیت Cron Job یا کرون جاب میگویند، که در سیستم عامل ویندوز با عنوان scheduled task برای
Cron Job در وردپرس نام گرفته و حتما آشنایی کوتاهی با آن دارید.
Cron Job در وردپرس چیست؟
در سیستم مدیریت محتوای محبوب وردپرس نیز چنین قابلیتی وجود دارد که با عنوان WP-CRON آن را میشناسیم. کار Cron Job در وردپرس این است که همان مسئولیتهای زمانبندی شده اعم از مطالب زمانبندی شده، بررسی انواع بهروزرسانی در وردپرس و .. را بر عهده دارد.
در وردپرس نیز وظایف و مسئولیتهایی که آماده اجرا هستند و برای اجرا شدن زمانبندی شدهاند، مشابه کرون جاب لینوکس و scheduled task ویندوز،
آماده اجرا شدن در زمان تعیین شده هستند. با این تفاوت که Cron Job در لینوکس و ویندوز در پس زمینه قرار گرفته و آماده انجام است،
اما Cron Job در وردپرس در دیتابیس ذخیره و آماده اجرا در زمان مقرر میباشد.
تفاوت های اصلی
تفاوت اصلی دیگری که در کارکرد Cron Job در وردپرس وجود دارد این است که کرون جاب وردپرس زمانی شروع به کار میکند که، ابتدا یک بازدید کننده به
سایت شما مراجعه کرده و پس از آن فایل wp-cron.php بررسی میکند که آیا وظیفهای زمانبندی شده مانند انتشار پست زمانبندی شده وجود دارد یا خیر!
حال اگر وظیفهای وجود داشت و زمان ان هم فرا رسیده بود آن را اجرا میکند اما در غیر اینصورت در زمان مورد نظر انجام خواهد شد.
حال در این مقاله از همیار وردپرس قصد دارم تا به معرفی افزونهای برای مدیریت و کنترل Cron Job در وردپرس بپردازم، که با استفاده از آن میتوانید لیستی از وظایف موجود را مشاهده و کنترل کنید.
مشاهده و کنترل Cron Job در وردپرس با WP Crontrol
افزونهای که قصد معرفی آن را دارم با نام WP Crontrol در مخزن وردپرس به ثبت رسیده است و تاکنون توانسته است تا بیش از 40.000 نصب فعال و کسب امتیاز 4.9 را ازآن خود کند. این افزونه Cron Job در وردپرس نام دارد.
تنظیمات Cron Job در وردپرس
پس از نصب و فعال سازی افزونه منویی در بخش ابزارها پیشخوان سایت وردپرسی با نام Cron Events افزوده خواهد شد. روی آن کلیک کنید تا مشابه تصویر زیر وارد صفحه افزونه در پیشخوان شوید.
همانطور که در تصویر مشاهده میکنید لیستی از وقایع و وظایفی که در حال اجرا و یا آماده اجرا شدن هستند، به همراه جزییات آنها در بخش Cron Job در وردپرس برای شما نمایش داده خواهد شد.
Action Name
در ستون اول که با نام Action Name قرار دارد میتوانید انواع هوک وردپرس را مشاهده کنید، که آماده اجرا شدن توسط کرون جاب هستند. نام هوکهای موجود به شما نشان خواهند داد که چه وظیفهای آماده اجرا شدن است.
wordpress hook
معمولا هوکهای وردپرس با یک عبارت بعد از پیشوند جداول مشابه wp_prifix نامگذاری میشوند. به عنوان نمونه wp_update_plugins و wp_update_themes و… که به ترتیب وظیفه بررسی بهروز رسانی برای افزونه و قالب وردپرس را بر عهده دارند.
اما ممکن است تا تمامی این نامها از این ساختار پیروی نکنند، به عنوان مثال هوک موجود برای افزونه سئو وردپرس با نام wpseo_ prefix میباشد.
Next Run
در ستون سوم که با نام Next Run قرار دارد میتوانید زمان اجرای هر Cron Job در وردپرس را مشاهده کنید که مدام در حال بهروزرسانی هستند.
و در نهایت در آخرین ستون میتوانید تا با کلیک بر روی گزینههای Edit, Run Now و Delete به ترتیب یک کرون جاب را اجرا، ویرایش و حذف نمایید.
نکته!!!: دقت کنید تا در مدیریت Cron Job در وردپرس خطایی نکنید، چرا که با حذف کرون جاب پیشفرض وردپرس باعث ایجاد مشکل اساسی در سایت وردپرسی
خود خواهید شد.
ویرایش یکی از وظایف Cron Job در وردپرس
حال اجازه دهید تا یکی از وظایف Cron Job در وردپرس را ویرایش کنیم. برای اینکار کرون جاب مورد نظر را انتخاب و بر روی گزینه Edit کلیک کنید. در اینجا من کرون جاب مربوط به بررسی بهروزرسانی افزونهها را انتخاب کردهام.
پس از اینکه بر روی گزینه Edit هر کرون جاب کلیک کنید، مشابه تصویر زیر نام کرون جاب به همراه مدیریت زمان اجرا و سایر ویژگیهای آن را میتوانید مدیریت کنید.
همان طور که مشاهده میکنید زمان اجرای بعدی کرون جاب برای بررسی بهروز رسانی افزونهها در وردپرس در بخش Next Run قابل مشاهده و ویرایش است که میتوانید به صورت دستی آن را تغییر دهید تا سریعتر بررسی شود.
همچنین در بخش Recurrence میتوانید زمان اجرای هر بررسی را تغییر دهید. در حالت عادی افزونههای وردپرس از هر 12 ساعت یکبار برای بهروزرسانی بررسی میشوند. که میتوانید آنها را بر روی سایر گزینهها همچون هر 5 دقیقه، 1 ساعت، 12 ساعت، 1 روز، هفته و ماه تعیین کنید.
پس اگر تاکنون برایتان سوال بوده که چطور افزونهای در یک سایت زودتر هشدار مربوط به بهروزرسانی را دریافت کرده اما در سایت دیگری بعد از گذشت چند ساعت، حال میدانیم که دلیل ان از کرون جاب بوده است.
افزودن Cron Job در وردپرس
اگر قصد افزودن وظایف جدید در وردپرس از طریق Cron Job در وردپرس را دارید کافی است تا مشابه تصویر زیر ابتدا به زبانه Add Cron Event مراجعه کرده
و سپس در فیلدهای مربوطه نام هوک کرون جاب، آرگومان، زمان اجرا و بازه زمانی هر بهروزرسانی را تعیین کنید.
با استفاده از کرون جاب میتوانید مشابه زمانبندی کردن نوشتهها وظایف و مسئولیتهایی را با توجه به مهارتی که در برنامه نویسی دارید تعیین کنید تا به صورت خودکار اجرا شوند.
اما حال که به لیست Cron Job در وردپرس مراجعه کنید، کرون جابی که به تازگی اضافه کردهاید را در آن نخواهید دید. دلیل آن هم این است که به صورت پیشفرض وردپرس به آن دسترسی ندارد و شما باید وجود آن را برای مشاهده و اجرا اعلام کنید.
بنابراین فایل فانکشن (functions.php) قالب خود را باز کرده و مشابه کدهای زیر نام هوک خود را در بخشهای مربوطه جایگزین کرده و در فایل فانکشن قرار دهید.
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'); }
فراموش نکنید که ایمیل خود را به جای ایمیل موجود وارد کنید!
این تابع به صورت آزمایشی زمانی که کرون جاب شما اجرا میشود یک ایمیل برای شما ارسال خواهد کرد. حال شما میتوانید به لیست Cron Job در وردپرس بازگشته و با اسکرول کردن و انتخاب کرون جاب مورد نظر، با کلیک بر روی گزینه Run Now آن را اجرا کنید.
جمع بندی نهایی!
با استفاده از Cron Job در وردپرس و افزونه wpcontrol که در این مقاله معرفی شد، قادر خواهید بود تا کارهای زمانبندی شده در وردپرس را مشاهده و مدیریت کنید. همچنین میتوانید تا وظایف جدیدی به آن اضافه کنید تا برخی کارها به صورت خودکار اجرا شوند. اما دقت کنید که برای این کار نیاز به داشتن مهارت برنامهنویسی و آشنایی با نحوه کارکرد کرون جاب خواهید داشت!
شاد باشید..