ساخت کرون جاب در وردپرس
یکی از قسمت های کاربردی در وردپرس که بیشتر جهت ساخت افزونه استفاده می شود، قسمت کرون جاب وردپرس می باشد. با استفاده از این امکان می توانید تنظیم کنید در ساعت های مشخص یک عمل انجام شود (در اینجا یک تابع اجرا شود). قبل از اینکه به ادامه مطلب بپردازید ابتدا مطلب انتشار مطالب زمانبندی شده را ببینید و به کد آن نگاهی سطحی بیاندازید. این یک مثال کاربردی از کرون جاب وردپرس است. ساختار کلی کرون در وردپرس بصورت زیر است :
register_activation_hook( __FILE__, 'prefix_activation' ); function prefix_activation() { wp_schedule_event( time(), $recurrence, 'prefix_hourly_event_hook' ); } add_action( 'prefix_hourly_event_hook', 'prefix_do_this_hourly' ); function prefix_do_this_hourly() { }
قسمت اول کد یک کرون جاب در وردپرس تعریف می کند و یک کد ثابت می باشد (یعنی فقط کپی کنید!). یک تیکه مهم در این قسمت وجود دارد که مشخص می کند که کرون چه زمان هایی اجرا بشه. من این قسمت را با متغییر $recurrence (به معنای باز رخداد و یه چیز تو این مایه ها) مشخص کردم تا هر کدوم از موارد زیر را خواستید در آن قرار بدهید. این پارامتر مقادیر زیر را می پذیرد :
- hourly: هر ساعت یکبار
- twicedaily: دوبار در روز
- daily: هر روز یکبار
قسمت دوم کد نیز با استفاده از اکشن ها تابع مورد نظر را به کرون جاب ایجاد شده ربط دادیم. اگه دنبال یه مثال کاربردی هستید پیشنهاد می کنم اینجا را ببینید. تا به اینجا قسمت اصلی کرون جاب گفته شد. الان قصد دارم چند تا نکته کاربردی از کرون جاب وردپرس براتون بگم.
اول اینکه شما میتوانید با استفاده از تابع wp_next_scheduled
چک کنید که آیا کرون ثبت شده یا نه. اگر ثبت شده باشه مقداری درستی را بصورت یک عدد (مهر زمان) و اگر ثبت نشده باشد مقدار نادرستی بر می گرداند. عددی که ذکر شد مهر زمان کرون بعدی است. یعنی مشخص می کند کرون جاب بعدی (اجرای تابع) در چه زمانی اتفاق می افتد. از این تابع می توان کمک گرفت تا در کرون جاب ها تداخل ایجاد نشود و در صورتی که کرون جابی قبلا با این نام ایجاد شده به دنبال نام دیگری بگردیم. به مثال زیر توجه کنید:
if ( ! wp_next_scheduled( 'prefix_hourly_event' ) ) { wp_schedule_event( time(), 'hourly', 'prefix_hourly_event'); }
این کد چک می کند اگر کرون جابی با عنوان (اساسا به این عنوان هوک گفته می شود) prefix_hourly_event وجود ندارد آن را ایجاد می کند.
در پایان اگر خدایی نکرده روزی کرون جاب مورد نظر برای شما کارایی نداشت یادتان نرود آن را حذف کنید. اینم یه دونه مثال کوچولو:
wp_clear_scheduled_hook( 'prefix_hourly_event_hook' );
در پایان شایان ذکر است که تمامی اطلاعات کرون ها در جدول options و با عنوان cron ذخیره می شود. در صورتی که کار خاصی با کرون ها داشتید می توانید آن ها را فراخوانی کنید. (این کار برای افراد مبتدی اصلا پیشنهاد نمی شود) همچنین امیدوارم این مطلب کاربردی بوده باشد. موفق باشید.
2 thoughts on “ساخت کرون جاب در وردپرس”
سلام
مصرف منابع کدوم بیشتره ؟ پیش فرض یا این کدها؟
راهی هست که مصرف کرون جابو پایین بیاریم؟
سلام
منظور شما بین کرون جاب وردپرس و سی پنل هست؟
با توجه به ساختار کرون وردپرس فکر میکنم منابع بیشتری مصرف کنه.
در مورد اینکه راهی وجود داره یا خیر در این حد میدونم که بهینه کردن کد ها بهترین راهه.