مدیریت کارها در وردپرس و کنترل کرون جاب با WP Crontrol
مدیریت کارها در وردپرس و کنترل آنها از مواردی است که شاید تا به حال به آن فکر نکرده باشید. البته منظور از این نوع مدیریت این نیست که مطالب و نوشتهها را به صورت ظاهری کنترل کنید، بلکه منظور کارهایی است که در باطن وردپرس صورت میگیرد.
هرگاه که اقدام به ایجاد یک نوشته به صورت زمانبندی شده میکنید، آیا این سوال برای شما پیش امده است که عملیات زمانبندی به چه صورتی کنترل و انجام میگیرد؟! در ظاهر بسیار ساده به نظر میرسد، ساعت و تاریخ نوشته را تعیین میکنید و نوشته در زمان مورد نظر منتشر میشود. اما اگر اینطور فکر میکنید سخت در اشتباه هستید.
مدیریت و زمانبندی وظایف در وردپرس مانند هر سیستم نرمافزاری دیگری همچون سیستم عاملهای ویندوز، یونیکس و.. توسط کرون جاب انجام میگیرد.
کرون جاب وردپرس چیست؟!
در وردپرس مسئولیت کارها توسط کرون جاب وردپرس صورت میگیرد که معادل همان کرون جاب در یونیکس و یا cheduled task در ویندوز میباشد. مسئولیت کرون جاب در وردپرس این است که زمانبندی مطالب، کنترل بهروزرسانی افزونه، قالب و هسته وردپرس و.. را در زمان تعیین شده ابتدا بررسی کند و سپس در صورت وجود یک مسئولیت آن را نهایی کند.
کار کرون جاب در وردپرس که آن را با wp-cron میشناسیم در دیتابیس ذخیره و مدیریت میگردد.
نحوه کارکرد کرون جاب در وردپرس به این شکل است که هرگاه یک بازدیدکننده وارد سایت شما میشود، فایل wp-cron.php بررسی میکند که آیا مسئولیتی همچون نوشته زمانبندی شده، بررسی موجود بودن بهروزرسانیها در وردپرس و از این قبیل وظایف وجود دارد یا خیر!
سپس در صورت وجود یک مسئولیت آن را اجرا میکند. بنابراین تا زمانی که سایت شما بازدیدی نداشته باشد، بهروزرسانی و مطالب زمانبندی شده در زمان تعیین شده منتشر نخواهند شد.
مدیریت کارها در وردپرس و کنترل کرون جاب
افزونهای که قصد معرفی آن را دارم با عنوان WP Crontrol در مخزن وردپرس به ثبت رسیده است و تاکنون توانسته است تا بیش از ۵۰٫۰۰۰ نصب فعال و کسب امتیاز ۴٫۹ را ازآن خود نماید که با استفاده از آن میتوانید اقدام به مدیریت کارها در وردپرس و کنترل کرون جاب کنید.
نصب و فعال سازی
پس از نصب و فعال سازی افزونه مشابه تصویر زیر منویی با عنوان Cron Events در بخش ابزارها پیشخوان سایت وردپرسی شما افزوده خواهد شد، روی آن کلیک کنید تا به صفحه مورد نظر هدایت شوید.
همانظور که در تصویر مشاهده میکنید یک لیست از کارها و مسئولیتهایی که در ورای ظاهر وردپرس در حال انجام و بررسی هستند قرار گرفته است که میتوانید با استفاده از این افزونه انها را کنترل و مدیریت نمایید.
در این صفحه قادر خواهید بود تا لیست مسئولیتهای در دست بررسی و اجرا را در بخش Hook Name ، زمان اجرای مسئولیتها را در ستون Next Run و کنترل هر یک از این کارها را که میتوانید اقدام به ویرایش، اجرا دستی و یا حذف آنها کنید را در ستون مدیریت کنترل کنید.
ویرایش کرون جاب وردپرس
برای ویرایش یکی از مسئولیتها اتدا مشابه تصویر زیر مسئولیتی که قصد دارید آن را ویرایش کنید را انتخاب و سپس بر روی گزینه Edit کلیک کنید. در نمونه زیر قصد دارم تا کنترل بهروزرسانی برای پوستههای وردپرس را تغییر دهم.
پس از کلیک بر روی گزینه ویرایش کرون جاب مربوط به بهروزرسانی قالب وردپرس وارد صفحهای خواهید شد که در زیر آن را مشاهده میکنید.
همانطور که در تصویر مشاهده میکنید زمان اجرای کرون جاب برای بررسی موجود بودن بهروزرسانی قالب وردپرس در بخش Next Run بر اساس زمان محلی و تاریخ تعیین شده ایت که در قسمت Recurrence بررسی بهروزرسانی قالب وردپرس در هر ۱۲ ساعت یکبار صورت میگیرد.
حال اگر قصد دارید تا زمان بررسی را به دلخواه خود تغییر دهید کافیست تا یکی از گزینههای موجود در گزینه Recurrence را که شامل هر ۵ دقیقه، هر ساعت، هر ۱۲ ساعت، هر روز و در نهایت هر ماه میباشد را انتخاب کرده و به دلخواه خود تغییر دهید تا در بازه زمانی تعیین شده هر بررسی بهروزرسانی قالب وردپرس صورت گیرد.
افزودن کرون جاب در وردپرس
حال اگر قصد دارید تا یک کرون جاب جدید در وردپرس برای انجام یک کار را اضافه کنید ابتدا بر روی زبانه Add Cron Event کلیک کرده و سپس مشابه تصویر زیر اطلاعات مربوط به کرون جاب را وارد کنید تا مسئولیت مورد نظر شما به صورت خودکار در زمان تعیین شده انجام گیرد.
حال همانطور که مشاهده میکنید نام هوک، آرگومان، تاریخ و زمان اجرای بعدی هوک و دوره زمانی برای اجرای آن را تعیین کرده و در نهایت بر روی دکمه Add Cron Event کلیک کنید.
حال برای اینکه لیست کرون جاب شما در صفه مورد نظر قابل مشاهده باشد به ویرایشگر قالب خود مراجعه کرده و کدهای زیر را در مکان مناسبی از فایل فانکشن(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'); }
همانطور که در کد بالا مشاهده میکنید به جای ایمیل you@example.com ایمیل خود را وارد کرده و آن را ذخیره کنید.
بدین ترتیب زمانی که کرون جاب شما اجرا شود توسط این تابع قادر خواهید بود تا از طریق ایمیل از آن مطلع شوید. حال به لیست وظائف سایت خود مراجعه کرده و آن را مشاهده و کنترل کنید.