wp-cron وردپرس چیست؟

1 1 1 1 1 1 1 1 1 1 Rating 4.50 (2 Votes)

امتیاز کاربران

ستاره فعالستاره فعالستاره فعالستاره فعالستاره فعال
 

کرون یکی از امکانات سیستم های یونیکس است که برای اجرای یک دستور یا اسکریپت خاص در یک زمان خاص کاربرد دارد.این امکان در وردپرس با نام Wp_Cron وجود دارد که از آن برای زمانبندی اجرای دستورات مورد نظر استفاده میشود. به عنوان مثال برای به روزرسانی و یا انتشار محتوای زمانبندی شده و ... کاربرد دارد.

کرون در وردپس با کرون سیستم ها متفاوت است. بدین صورت که کرون در وردپرس به صورت مداوم اجرا میشود.عملکرد کرون ها بدین صورت است که تا زمان رسیدن به زمان مشخص شده برای اجرا ، در حافظه سیستم مانده و در پس زمینه به طور مداوم اجرا میشود.

 

دلیل استفاده از WP-Cron 

در بیشتر سرویس های اشتراکی دسترسی به کرون های سیستم برای مدیران وب سایت غیرفعال میباشد.در صورتیکه تمامی برنامه های زمان بندی شده در وردپرس شامل ارسال پست های زمان بندی شده و بروز رسانی پوسته ها و افزونه ها و ارسال ایمیل های یادآوری، همگی توسط فایلی با نام wp-cron.php انجام می شوند.

یکی از مزیت های wp-cron نسبت به کرون سیستم ها ، از دست ندادن کارهای زمانبندی شده است. در صورتیکه برنامه مشخصی که با استفاده از کرون زمانبندی شده است به هر علتی اجرا نشود، برنامه از دست خواهد رفت ولی همین وضعیت با استفاده از wp-cron وردپرس ، برنامه در لیست انتظار باقی مانده و بعدا اجرا خواهد شد.به همین جهت هیچ برنامه مشخص شده ای از دست نخواهد رفت.

در شرایط عادی در هر بار که بازدید کننده ای به وبسایت شما مراجعه کند فایل wp-cron.php اجرا میشود.. این امر به ظاهر مشکلی ندارد اما زمانی که بازدید های وبسایت افزایش یابد این امر میتواند منجر به مشکلات زیادی از جمله بالا رفتن لود سرور و افزایش منابع مصرفی اکانت و کند شدن سرعت بارگذاری وبسایت شود. دلیل آن نیز اشتباه وردپرس است که زمان مراجعه بازدیدکننده به وب سایت ، برنامه زمان بندی شده نباید اجرا شود. 

پس بهتر است که کنترل اجرای فایل wp-cron.php را در وردپرس غیرفعال کرده و به سراغ کرون سیستم از طریق سی پنل برویم. 

البته به این نکته توجه نمایید که WP-Cron به طور مداوم اجرا نمی شود، که این مساله برای عملیاتی که نیاز به اجرای مداوم دارند مشکل ساز خواهد شد.

 

غیر فعال کردن اجرای خودکار wp-cron.php در وردپرس

برای انجام  این کار فایل wp-config.php را باز کرده و کد زیر را به آن اضافه میکنیم:

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');
define('DISABLE_WP_CRON', 'true');

سپس تغییرات را ذخیره میکنیم. جال از این پس هر بازدیدکننده ای که به وب سایت مراجعه کند ، فایل wp-cron.php اجرا نخواهد شد.

از آنجایی که نمیخواهیم قابلیت کرون جاب وردپرس به طور کلی غیرفعال شود ، باید کرون را بصورت دستی در قسمت کرون جابز سی پنل تنظیم کنیم. میتوانیم کرون جاب را به گونه ای زمانبندی کنیم تا دستورات هر 6 ساعت یکبار اجرا شود. پس برای انجام این کار مراحل زیر را انجام میدهیم:

۱. وارد کنترل پنل سی پنل خود میشویم.

۲. از بخش Advanced گزینه Cron Jobs را انتخاب میکنیم.

۳. سپس از بخش Common Settings گزینه Once Per Hour و از بخش Hour گزینه Every Sixth Hour را انتخاب میکنیم.

۴. سپس در بخش Command کد زیر را قرار داده و روی Add New Cron Job کلیک میکنیم.

php -q /home/user/public_html/wp-cron.php >/dev/null 2>&1

در اینجا user همان نام کاربری سی پنل ما میباشد.

مسیر home/user/public_html/ برای دامنه اصلی ما است. چنانچه قصد اعمال این تغییرات را برای Sub Domain  یا Addon Domain ها داشته باشیم، لازم است متناسب با مسیر آن، آدرس بالا را تغییر دهیم.

در نهایت کرون جاب با موفقیت ایجاد شده و از این پس کنترل فایل wp-cron.php با ما بوده و میتوانیم اجرای آن را به هر نحو دلخواه تغییر دهیم.