هوک ها به توسعه دهندگان این امکان را می دهند که بدون نیاز به ویرایش کد اصلی وردپرس، عملکرد وردپرس را تغییر داده یا گسترش دهند. آنها این کار را با اجرای اکشن ها و فیلترها انجام می دهند، که توابع PHP هستند که وظایف را انجام می دهند و تغییراتی در داده ها ایجاد می کنند.
هوک ها به طور گسترده توسط توسعه دهندگان پلاگین یا افزونه و قالب ها استفاده می شوند. با این حال، اگر توسعهدهنده نیستید، میتوانید تکههای کد را از وب جایگذاری کنید تا ویژگیهای جدیدی به وبسایت خود اضافه کنید. بسیاری از این موارد شامل هوک ها هستند.
هوک وردپرس چیست؟
هوک ها ستون فقرات وردپرس، و پایه و اساس توسعه قالب ها و پلاگین های وردپرس هستند. آنها مکان هایی هستند که توسعه دهندگان می توانند کد سفارشی خود را در مکان های خاص به وردپرس اضافه کنند و نحوه عملکرد وردپرس را بدون ویرایش فایل های اصلی تغییر دهند. در صورتی که برنامه نویس تغییری در کد هسته وردپرس اعمال کند، با بروزرسانی وردپرس، تمامی تغییرات از بین خواهد رفت. اما با استفاده از هوک ها، امکان توسعه برنامه از طریق پلاگین ها و مجزا از بروزرسانی وردپرس فراهم می آید. بدون وجود هوک ها، پلاگین ها راهی برای ایجاد تغییر در عملکرد وردپرس ندارند.
هوک ها در وردپرس به دو دسته اصلی تقسیم می شوند:
-
هوک های اکشن (action)
-
هوک های فیلتر (filter)
هوک های اکشن امکان اجرای یک تابع در یک مرحله مشخص (اغلب وقوع یک رویداد خاص مانند فعالسازی پلاگین) از روال کاری وردپرس را مسیر می سازند و هوک های فیلتر امکان دستکاری و تغییر در خروجی را فراهم می آورند.
هوک اکشن یا Action hook در وردپرس چیست؟
هوک در زبان انگلیسی به معنی قلاب است. هوک اکشن هم دقیقاً همانند یک قلاب عمل میکند. شما توابع را به این قلاب آویزان میکنید. هر وقت که آن قلاب برداشته شد، توابع شما هم اجرا میشوند.
هوکهای اکشن این امکان را به شما میدهند که تابعی را در زمان مشخصی صدا بزنید. مثلاً تابعی نوشتید که میخواهید در هنگام لود شدن هر صفحه صدا زده شود. با استفاده از هوک مخصوص لود شدن صفحات میتونید این کار را انجام دهید.
اکشن ها زمانی مورد استفاده قرار می گیرند که تابعی را ساخته اید و می خواهید زمان خاصی اجرا و افزوده شود به عنوان مثال زمانی که کاربر لاگین می کند آن تابع اجرا شود در این قسمت است که اکشن ها به کمک برنامه نویس می آیند و به سادگی توابع مورد نظر را در زمان مورد نیاز اجرا می کنند.
در اینجا نمونه ای از هوک اعمال شده برای یک اکشن در وردپرس آورده شده است:
} () function mytheme_enqueue_script
;wp_enqueue_script( 'my-custom-js', 'custom.js', false )
{
;add_action( 'wp_enqueue_scripts', 'mytheme_enqueue_script' )
کد نمونه بالا یک تابع mytheme_enqueue_script را ایجاد می کند که به اکشن wp_enqueue_scripts متصل می شود.
توجه: اگر مبتدی هستید، به شدت پیشنهاد میشود که از ویرایش هر فایل وردپرس خود دوری کنید. فقط کاربران باتجربه ای که با ویرایش فایل functions.php احساس راحتی می کنند و کمی دانش PHP دارند این کار را امتحان کنند. مبتدیان باید یا از یک افزونه برای انجام وظیفه ای که می خواهند انجام دهند استفاده کنند یا با متخصصان مشورت کنند تا کد کد را برای آنها ویرایش کنند.
قبل از ویرایش هر کدی در سایت وردپرسی خود توصیه می کنیم از وبسایت خود بکاپ بگیرید تا در صورت بروز خطا در کدنویسی بکاپ را ریستور کنید. اگر افزونه بکاب گیری ندارید، حتما مقاله ما را بخوانید که در آن بهترین افزونه های پشتیبان وردپرس را معرفی می کنیم.
قلاب فیلتر یا Filter hook چیست؟
یک فیلتر رفتار پیش فرض یک تابع خاص را تغییر می دهد. این کار را با دستکاری داده های دریافتی و برگرداندن آن داده ها به وردپرس قبل از نمایش در مرورگر انجام می دهد. به عنوان مثال، از فیلترها می توان برای کوتاه کردن متن، تغییر قالب بندی محتوا، پیوست کردن لینک ها به پست ها، اصلاح بلوک های یک صفحه و تغییر گزینه های بازیابی شده از پایگاه داده استفاده کرد.
در اینجا نمونه ای از قلاب مورد استفاده با فیلتر در وردپرس آورده شده است:
} function wpb_custom_excerpt( $output )
} if ( has_excerpt() && ! is_attachment() )
;$output .= wpb_continue_reading_link()
{
;return $output
{
;add_filter( 'get_the_excerpt', 'wpb_custom_excerpt' )
کد نمونه بالا یک تابع wpb_custom_excerpt ایجاد می کند که به فیلتر get_the_excerpt قلاب می شود.
چگونه اکشن ها و فیلترها را حذف کنیم
برداشتن هوک بسیار ساده است. از تابع remove_action یا remove_filter به همراه نام هوک، تابع و اولویت استفاده کنید. اگر میخواهید تابعی را که بیش از یک بار هوک شده است یا فقط یک مورد خاص از آن تابع را حذف کنید، اولویت اختیاری و مفید است.
;remove_action( $tag, $function_to_remove, $priority )
;remove_filter( $tag, $function_to_remove, $priority )
چرا از هوک ها استفاده کنیم؟
اکنون می دانید که آنها چگونه کار می کنند، می بینید که درک قلاب ها برای هر کسی که با وردپرس توسعه می دهد کاملاً ضروری است. حتی اگر توسعهدهنده نیستید اما میخواهید رفتار وردپرس یا قالب خود را تغییر دهید، بسیار مفید است.
با درک قلاب ها، می توانید، تقریباً هر چیزی را در وردپرس تغییر دهید؛ حتی چیزهای کاملاً اساسی زیرا بسیاری از عملکردهای اصلی وردپرس از اکشن ها و فیلترها استفاده می کنند. هنگامی که مفاهیم را درک کردید، می توانید تغییرات فوق العاده پیچیده را خیلی سریع ایجاد کنید. وقتی با ساختار آشنا بشوید اشکال زدایی نیز آسان تر میشود و زمان کم تری صرف میکنید.
درک کامل هوک ها بسته به مهارتهای شما میتواند چند ساعت یا (بسیار) بیشتر طول بکشد، اما در آینده چند روز در وقت شما صرفهجویی میکند.
در این آموزش هوک وردپرس را برای شما توضیح دادیم. امیدواریم این مقاله آموزشی برای شما مفید بوده باشد، برای دیدن باقی آموزش ها میتوانید وارد منوی پشتیبانی بخش آموزش ها شوید، در صورتی که درباره این آموزش به مشکل یا سوالی برخورد کردید، میتوانید آن را در بخش دیدگاه بیان کنید.