هوک و اکشن و فیلتر در وردپرس
وردپرس به عنوان محبوبترین سیستم مدیریت محتوایCMS دنیا ، به کاربران خود قدرت و انعطافپذیری بالایی برای خلق تجربیات وب منحصر به فرد اعطا میکند. یکی از قدرتمندترین ابزارهایی که در این راستا به کاربران ارائه میشود، قلابها (Hooks)، اکشنها (Actions) و فیلترها (Filters) می باشند. این ابزارها به توسعهدهندگان اجازه میدهد تا بدون نیاز به دستکاری در فایلهای هسته وردپرس، رفتار و عملکرد وبسایت را مطابق با نیازهای خود تغییر دهند و یا ویژگیهای جدیدی به آن اضافه کنند.
قلاب یک استراتژی برنده است که دست توسعه دهندگان وردپرس را آزاد می گذارد تا تقریباً هر ویژگی وب سایتی را که قابل تصور و لازم است بسازند.
برای سفارشی سازی وردپرس هوک ها مهم ترین نقش را ایفا می کنند و به شما این امکان را می دهند که به طور یکپارچه عملکرد آن را تغییر و یا گسترش دهید. اکشنها شما را قادر میسازند تا وظایف خاصی را در نقاط از پیش تعریف شده در طول زمان اجرا انجام دهید، در حالی که فیلترها به شما امکان دستکاری دادهها و برگرداندن نتایج فیلتر شده را میدهند.
قبل از اینکه به بررسی کامل قلاب ها بپردازیم و تفاوت بین قلاب های اکشن و قلاب های فیلتر را بررسی کنیم، به بررسی زیرساخت وردپرس و اجزای اصلی آن میپردازیم تا درک عمیقتری از نحوه عملکرد و قرارگیری هوک ها در این سیستم قدرتمند به دست بیاوریم.
زیرساخت وردپرس
- هسته وردپرس(WordPress Core) :
به عنوان هسته اصلی این سیستم وظایف اصلی را بر عهده دارد . به زبان PHP نوشته شده و از پایگاه داده MySQL استفاده می کند . این وظایف شامل موارد زیر میشوند:
- مدیریت محتوا: هسته وردپرس امکان ایجاد، ویرایش و انتشار انواع محتوا مانند پستها، صفحات، تصاویر و ویدئوها را فراهم میکند.
- مدیریت کاربران: امکان ثبتنام، ورود، مدیریت و دستهبندی کاربران را فراهم میکند.
- مدیریت رسانه: آپلود، ذخیره، دستهبندی و مدیریت تصاویر، ویدئوها و سایر فایلهای رسانهای از وظایف هسته وردپرس است.
- مدیریت تنظیمات: هسته وردپرس تنظیمات مختلفی را برای پیکربندی وبسایت، مانند تنظیمات کلی، تنظیمات نمایش، تنظیمات خوانندگان و … ارائه میدهد.
- قالب: هسته وردپرس از قالب های مبتنی بر PHP و HTML برای نمایش محتوا و ساختار صفحات وبسایت استفاده میکند.
- سیستم افزونه: هسته وردپرس امکان نصب و استفاده از افزونهها را برای افزودن قابلیتهای جدید به وبسایت فراهم میکند.
- تم ها :
تمها(Themes) رابط کاربری وب سایت وردپرس را کنترل میکنند و به کاربران امکان میدهند تا ظاهر وبسایتشان را مطابق با سلیقه و نیازشان شخصیسازی کنند. تمها شامل فایلهای HTML، CSS ، JavaScript و php هستند که چیدمان، رنگها، فونتها و سایر عناصر بصری وبسایت را تعیین میکنند. برای مثال، قلابها در یک صفحه ممکن است به عنوان یک اسکریپت ، فونت یا انواع پست سفارشی اضافه شوند.
- تم های والد (Parent Themes) و تم های فرزند (Child Themes) : وراثت و سفارشی سازی
تمهای والد تم های کاملی هستند که تمامی امکانات و قابلیت های مورد نیاز برای یک وبسایت را ارائه میدهند.
تمهای فرزند از تم های والد ارث بری دارند و به شما امکان میدهند تا بدون نیاز به دستکاری در کدهای تم اصلی، تغییرات و سفارشیسازیهای دلخواه خود را اعمال کنید. این امر، پایداری و امنیت تم اصلی را حفظ میکند و در عین حال، امکان اعمال تغییرات جزئی و کلی را فراهم میکند . دستورات نوشته شده در تم فرزند همیشه نسبت به تم والد در اولویت می باشند.
- افزونه (ها) :
برای گسترش عملکرد بکاند وردپرس، میتوانیم از بین هزاران افزونه وردپرس نوشته شده توسط افراد دیگری طبق نیازمان انتخاب و استفاده کنیم. برای مثال، قلابها در یک افزونه میتوانند هنگام انتشار یک پست به ما از طریق ایمیل اطلاع دهند .
- پلاگین(های) سفارشی :
هنگامی که یک افزونه به طور کامل نیازهای لازم را برآورده نمی کند، می توانیم با نوشتن یک افزونه سفارشی در PHP، آن را توسعه دهیم یا می توانیم از ابتدا یک افزونه جدید بنویسیم. در هر دو مورد، ما قلاب(ها) را برای گسترش عملکرد موجود اضافه می کنیم.
هوک ها
هوک ها پایه و اساس پلاگین وردپرس و توسعه تم هستند. آنها ابزار هایی هستند که توسعه دهندگان می توانند کد سفارشی خود را در مکان های خاص به وردپرس «قلاب کنند» و نحوه عملکرد وردپرس را بدون ویرایش فایل های اصلی تغییر دهند.
دو نوع قلاب وردپرس وجود دارد: اکشن ها و فیلترها
قلاب های وردپرس از دو نوع به نام های Actions و Filters تشکیل شده اند.
- اکشن ها شما را قادر می سازد تا وظایف خاصی را در نقاط از پیش تعریف شده در طول زمان وردپرس اجرا کنید،
- در حالی که فیلترها به شما این امکان را می دهند که داده های پردازش شده توسط وردپرس را تغییر داده و برگردانید.
یک قلاب اکشن ، اقدامات را اجرا می کند.یک قلاب فیلتر ، فیلترها را اجرا می کند.
اکشن ها :
با استفاده از یک عمل، می توان رفتار پیش فرض یک تابع خاص را با استخراج اطلاعاتی از وردپرس و انجام عملیات روی آن سفارشی سازی کرد. هنگامی که یک عمل اجرا می شود، دیگر نیازی به ارسال هیچ داده ای به وردپرس نیست. در نتیجه زمانی که یک رویداد در وردپرس رخ می دهد ، یک اکشن کد را اجرا می کند. اکشن ها می توانند عملیات هایی مانند عملیات زیر انجام دهند:
- ایجاد داده
- خواندن داده ها
- اصلاح داده ها
- حذف داده ها
- ثبت مجوزهای کاربران وارد شده
- ردیابی مکان ها و ذخیره آنها در پایگاه داده
برای افزودن اکشن ها از تابع ()add_action استفاده می شود. وردپرس چندین توابع را ارائه می دهد که استفاده از اکشن ها را آسانتر می کند، که در زیر رایج ترین آنها بیان شده اند:
()add_action : به کاربر اجازه می دهد تا زمانی که یک قلاب خاص رخ می دهد، عملکردی را اجرا کند.
()remove_action : یک تابع را از یک قلاب مشخص حذف میکند .
()has_action : بررسی می کند که آیا اکشنی برای یک هوک ثبت شده است یا خیر.
فیلترها
یک فیلتر به ما امکان می دهد داده ها را قبل از پردازش برای نمایش در مرورگر تغییر دهیم. برای این منظور، یک فیلتر متغیر(ها) را می پذیرد، مقدار(های) ارسال شده را اصلاح می کند و داده ها را برای پردازش بیشتر برمی گرداند.
وردپرس تمام فیلترهای ثبت شده را قبل از تهیه محتوا برای مرورگرها بررسی و اجرا می کند. به این ترتیب، می توانیم داده ها را قبل از ارسال به مرورگر یا پایگاه داده، در صورت لزوم، دستکاری کنیم.
فیلترها با چنین دستوراتی اعمال می شوند :
()add_filter() ، remove_filter()، doing_filter() ، has_filter
در نتیجه :
با استفاده از این ابزارها، میتوانید کدهای سفارشی خود را در نقاط مختلف وردپرس استفاده کنید و بدین ترتیب، عملکردهای جدیدی را اضافه کنید، رفتارهای موجود را تغییر دهید و یا دادهها را فیلتر کنید.
این ابزارها به شما این امکان را میدهند که وردپرس را به گونهای که نیاز دارید، سفارشی کنید، بدون اینکه نیاز به تغییر کدهای هسته، تمها یا افزونهها داشته باشید. این امر وردپرس را به پلتفرمی انعطافپذیر تبدیل میکند که میتواند برای طیف گستردهای از نیازها استفاده شود.
اگرچه استفاده از قلابها، اقدامات و فیلترها نیاز به درک اساسی از PHP و نحوه عملکرد وردپرس دارد، اما با کمی مطالعه و تمرین، میتوانید یاد بگیرید که چگونه از این ابزارها برای ایجاد وبسایتها و برنامههای کاربردی وردپرس قدرتمند و منحصر به فرد استفاده کنید.
دیدگاه و پرسش
زهرا موسوی
سلام زهرا هستم، یه مهندس نرم افزار که عاشق خلق کردنه :) در حوزه فرانت اند فعالیت دارم، مشتاق یادگیری بیشتر و افزایش دانش و مهارت هام بودم و هستم که در ویکی پلاس جوونه زده ام
مطالب مرتبط
جدیدترین مطالب مرتبط به این مقاله