Hooks در وردپرس

هوک ها یا قلاب‌ها یک قطعه کد هستند و راهی برای تعامل یا تغییر یک کد دیگر در نقاط از پیش تعریف‌شده، ارائه می‌دهند. آنها اساس و نحوه تعامل افزونه ها و تم ها با WordPress Core را تشکیل می دهند، اما خود Core نیز به طور گسترده از آنها استفاده می کند.

دو نوع هوک وجود دارد: Actions و Filters . برای استفاده از هر کدام، باید یک تابع سفارشی به نام Callback بنویسید و سپس آن را با یک هوک وردپرس برای یک عمل یا فیلتر خاص ثبت کنید.

Actions به شما امکان می دهد داده اضافه کنید یا نحوه عملکرد وردپرس را تغییر دهید. اکشن ها در نقطه خاصی از اجرای هسته وردپرس، افزونه ها و تم ها اجرا می شوند. توابع Callback برای Actions می توانند نوعی کار را انجام دهند، مانند بازتاب خروجی به کاربر یا درج چیزی در پایگاه داده. توابع پاسخ به تماس برای یک Action چیزی را به قلاب Action که فراخوانی می کند بر نمی گرداند.

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

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

مقایسه اکشن ها و فیلترها

تفاوت اصلی بین یک اکشن و یک فیلتر را می توان اینگونه خلاصه کرد:

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

به بیان دیگر:

  • یک اکشن جریان کد را برای انجام کاری قطع می کند و سپس بدون تغییر چیزی به جریان عادی باز می گردد.
  • از یک فیلتر برای اصلاح چیزی به روشی خاص استفاده می‌شود تا بعداً این اصلاح توسط کد مورد استفاده قرار گیرد.

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *