نماد سایت بیگ تم

آموزش زمان بندی رویداد ها در وردپرس

زمان بندی

سلام و عرض ادب و احترام و خسته نباشید خدمت شما دوستان عزیز
با آموزشی دیگر از سیستم مدیریت محتوای وردپرس با شما دوستان عزیز همراه شدم.در این آموزش میخواهم در مورد یکی از مهمترین مسائل موجود در وردپرس صحبت کنم و آن را مورد بررسی قرار دهم.در این آموزش وردپرس در مورد زمان بندی رویداد ها در سیستم مدیریت محتوای وردپرس صحبت میکنیم.

Cron Job یا همان زمان بندی رویداد ها یکی از قابلیت‌های معروف سیستم‌های یونیکسی است که به کاربران آن ها این امکان را می‌دهد که دستورات مشخصی را در زمان خاص یا دوره‌ ای خاص اجرا کنند. برای مثال یک دستور هر روز در ساعت ۱۶ اجرا شود یا هر ۱۰ دقیقه یک‌بار یک فایل دانلود شود.که این میتواند در حالت هایی بسیار مفید واقع شده و نیاز کاری را رفع نماید.

دوستان عزیز حال در این قسمت از آموزش زمان بندی رویداد ها نکته ای که وجود دارد این است که هاستینگ‌های بسیاری این امکان را به مشتریان خود می‌دهند که بتوانند Cron Job های خود را تنظیم کنند. اما بسیاری از مواقع امکان استفاده از این Cron Jobها وجود ندارد.که شما میتوانید با کمی تحقیق در این مورد بفهمید که کدام سرویس دهنده ها از این مورد پشتیبانی میکنند

برای مثال اگر شما یک توسعه‌دهنده افزونه وردپرس هستید، تقریباً امکان استفاده از Cron Job یونیکس برایتان وجود ندارد، چون ممکن است هر کسی با نحوه تنظیم Cron Job آشنا نباشد.پس باید کارتان در مورد ان باشد و یا در مورد آن اطلاعاتی داشته باشید تا بتوانید آن را راه اندازی نمائید.

خوشبختانه وردپرس یک سیستم قوی Cron Job داخلی دارد که به توسعه‌دهندگان این امکان را می‌دهد که در مدت مشخصی دستورات موردنظر را اجرا کنند. برای مثال هر روز، نسخه جدید پلاگین را چک کنند و کار هایی از این دست.اما باید در ابتدا توضیحی در مورد این Cron Job در وردپرس بدهم تا شما بهتر با آن و روش کار آن و ویژگی های آن آشنا شوید

اولین مورد از این توضیح مزایا و معایب سیستم Cron Job داخلی وردپرس نسبت به خویشاوند یونیکسی آن است که به صورت زیر است:
ابتدا به بررسی مزایای ان میپردازیم و سپس معایب آن را نیز مورد بررسی قرار میدهیم.

مزایا:

معایب:

خب این هم از معایب و مزایای این سیسنم در وب سایت ها

خب حالا باید در مورد روش کار این سیستم در وب سایت و همچنین روش قرار دادن یک رویداد برای تکرار صحبت کنیم که کاری بسیار ساده است.حال در ادامه یک وظیفه ساده را به سیستم وردپرس برای اجرا محول می‌کنیم تا ببینیم روش کار به چه ترتیب است. کدهای زیر را می‌توانید در functions.php قالب خود قرار داده و یا برای این منظور یک پلاگین جدا بنویسید.که انتخاب اینکار با شماست

خب دوستان عزیز برای ایجاد یک رویداد زمان‌بندی‌شده که با نام وظیفه پیشتر آن را معرفی کردیم، کافیست ابتدا بررسی کنیم که آیا پیشتر این رویداد توسط وردپرس شناخته شده است یا خیر، در غیر این صورت، آن را به وردپرس معرفی می‌کنیم که برای این منظور شما میتوانید از هک وردپرس زیر استفاده کنید:

add_action( ‘wp’, ‘wp_parsi_scheduled_event’ );
function wp_parsi_scheduled_event() {
if ( ! wp_next_scheduled( ‘wp_parsi_daily_task’ ) )
wp_schedule_event( time(), ‘daily’, ‘wp_parsi_daily_task’ );
}

خب دوستان عزیز همان‌طور که در کد تابع wp_parsi_scheduled_event مشاهده می‌کنید، ابتدا با استفاده از این کد بررسی کردیم که آیا رویدادی با نام wp_parsi_daily_task قبلاً در وردپرس زمان بندی شده است یا خیر. در غیر این صورت یک رویداد زمان بندی ثبت کند. برای ثبت یک رویداد از تابع wp_schedule_event استفاده می‌کنیم.که در ادامه به صورت کامل به توضیح آن میپردازم.

پارامتر های تابع گفته شده به صورت زیر است:

خب دوستان عزیز حالا برای مشخص‌کردن دستوراتی که باید اجرا شوند در این زمان بندی ، کافیست که یک تابع به wp_parsi_daily_task را قرار دهیم:

add_action( ‘wp_parsi_daily_task’, ‘wp_parsi_func’ );
function wp_parsi_func() {
// … code here …
}

سخن آخر

خب دوستان این هم از این آموزش که به همین راحتی توانستیم به این سیستم وردپرس کار کنیم
اما در اینجا نکته ای بسیار مهم وجود دارد که شما نیز باید به ان توجه ویژه ای داشته باشید.دوستان عزیز نکته‌ای که بیشتر توسعه‎دهندگان در توسعه پلاگین و پوسته‌هایی که از سیستم Cron داخلی استفاده می‌کنند، رعایت نمی‌کنند، این است که پاک‌نکردن رویدادها در هنگام غیرفعال‌شدن افزونه یا پلاگین میتواند برای وب سایت بسیار مشکل زا شود و آن را به مرز خرابی بکشاند

شما میتوانید برای حذف این مورد از وب سایت و این سیستم از کد زیر استفاده کنید:

register_deactivation_hook( __FILE__, ‘wp_parsi_remove_task’ ); // be jaye __FILE__, sabet file asli plugin khod ra jaygozin konid
function wp_parsi_remove_task() {
if ( wp_next_scheduled( ‘wp_parsi_daily_task’ ) )
wp_clear_scheduled_hook( ‘wp_parsi_daily_task’ );
}

خب دوستان این آموزش وردپرس هم به پایان رسید
ممنونم از همراهی همیشگی شما

موفق و پیروز و مانا باشید دوستان

منبع: بیگ تم مرجع قالب وردپرس ، آموزش های وردپرس و آموزش های هک وردپرس

خروج از نسخه موبایل