تفاوت فیلتر و اکشن در افزونه‌های وردپرس

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

وردپرس

در ادامه معنی و مفهوم اکشن و فیلتر و نمونه کدهایی برای به کارگیری این ویژگی‌ها در طراحی سایت با وردپرس را مشاهده خواهید کرد.

اکشن چیست؟

اکشن یا Action یک رویداد است که در نقاط مختلف اجرای هسته‌ی وردپرس به انجام می‌رسد. افزونه‌های وردپرس می‌توانند از اجرای این رویداد باخبر شوند و عملیات مورد نظر خود را در این نقطه به انجام برسانند. عملیات انجام شده توسط افزونه‌ها در این نقطه اثری روی عملکرد هسته‌ی وردپرس برجای نمی‌گذارند. برای مثال یک اکشن می‌تواند شروع به کار پردازش آدرس درخواستی باشد. در این هنگام ممکن است یک افزونه‌ی آمارگیر بخواهد آدرس‌های درخواستی کاربر را در جدولی از پایگاه داده ذخیره کند و ادامه‌ی کار را به وردپرس واگذار کند.

فیلتر چیست؟

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

توابع استفاده از اکشن‌ها

استفاده از اکشن‌ها با استفاده از دو تابع اصلی do_action برای ایجاد اکشن در هسته‌ی وردپرس و تابع  add_action در افزونه‌ها برای گوش به زنگ ایستادن برای رخداد اکشن کاربرد دارند. به مثال مقابل توجه کنید:

در مثال بالا تابع add_action دو پارامتر اضافی در انتها دریافت می‌کند. این پارامترها به ترتیب اولویت گوش به زنگ بودن را مشخص می‌کنند. هر چه عدد بزرگتر باشد، این تابع دیرتر از سایر افزونه‌ها از رخداد این اکشن باخبر خواهد شد.

پارامتر دوم نشان می‌دهد تابع تعریف شده برای پاسخگویی به این اکشن چند پارامتر قبول می‌کند. این تعداد می‌تواند کمتر یا مساوی تعداد پارامترهای اکشن اصلی باشد.

یک تابع دیگر هم برای استفاده از اکشن‌ها به نام do_action_ref_array نیز وجود دارد که امکان تغییر دادن و برگشت دادن متغیرهای ارسالی را دارد. البته استفاده از این شیوه وابسته به نوع اکشن استفاده شده در هسته‌ی وردپرس است.

توابع استفاده از فیلترها

استفاده از فیلترها با کمک دو تابع اصلی apply_filters در هسته‌ی وردپرس برای تعریف فیلتر و تابع add_filter برای گوش به زنگ بودن رخداد فیلتر استفاده می‌شود. به مثال زیر توجه کنید:

تابع add_filter همانند تابع add_action چهار پارامتر می‌پذیرد. این پارامترها به ترتیب عبارتند از «نام فیلتر»، «نام تابع»، «ترتیب و اولویت اجرا»، و «تعداد پارامترهای تابع پاسخگو».

روش پیدا کردن اکشن‌ها و فیلترهای لازم برای نوشتن افزونه

برخی از اکشن‌ها و فیلترهای پرکاربرد در هسته‌ی وردپرس در مستندات آن دارای توضیحات هستند. ولی بسیاری از آن‌ها دارای مستندان نیستند و برنامه‌نویس با بررسی کدهای وردپرس می‌بایست آن‌ها را بیابد و در افزونه و قالب مورد استفاده قرار دهد.

تعریف اکشن و فیلتر در افزونه‌ها

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

برای مثال افزونه‌ی بزرگ WooCommerce یکی از این موارد است که تعداد زیادی اکشن و فیلتر برای تغییر عملکرد فروشگاه اینترنتی در اختیار برنامه‌نویسان قرار می‌دهد. به همین دلیل پس از نصب ووکامرس، امکان نصب افزونه‌های متعدد دیگر که کارکرد فروشگاه ووکامرس را تغییر می‌دهند امکان‌پذیر است.


مشاهده‌ی تمامی نوشته‌ها در گروه: وردپرس. ‏ فهرست برچسب‌ها: , , .

پاسخ دهید

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