در دنیای وبسایتسازی با وردپرس، مفهومی که بسیار مهم و قدرتمند است، “هوک” (Hook) نام دارد. هوکها اساساً نقاطی در کد وردپرس هستند که به شما اجازه میدهند تا تغییرات و سفارشیسازیهای خود را به نقاط مشخص در فرآیند اجرای وردپرس اضافه کنید. در این مقاله، به شما توضیح میدهیم که هوک در وردپرس چیست و چگونه میتوانید از آنها بهره ببرید.
هوک چیست؟
هوک در وردپرس مثل دستگاههای جادویی هستند که به توسعهدهندگان وب سایتها قدرت میدهند تا وقتی که رخدادهای خاصی در وب سایت اتفاق میافتند، کدهایی را اجرا کنند. این کدها میتوانند چیزهای مختلفی انجام دهند، مثل افزودن محتوا، تغییر محتوا، یا اجرای عملیاتهای دلخواه.
فرض کنید وب سایت شما یک فروشگاه آنلاین است و شما میخواهید برای محصولاتی که قیمت آنها بیشتر از ۱۰۰ هزار تومان است، یک تخفیف ویژه اعمال کنید. به جای اینکه به صورت دستی تخفیف را برای هر محصول تغییر دهید، میتوانید از هوک فیلتر استفاده کنید.
شما میتوانید یک هوک فیلتر ایجاد کنید که قیمت محصول را بررسی کند و اگر بیشتر از ۱۰۰ هزار تومان باشد، مبلغ تخفیفی به قیمت اضافه کند. به این ترتیب، هر بار که یک محصول با قیمت بالای ۱۰۰ هزار تومان نمایش داده میشود، کد هوک فیلتر اجرا میشود و تخفیف مورد نظر به قیمت اعمال میشود.
این مثال نشاندهنده قدرت و انعطافپذیری هوکها در وردپرس است. با استفاده از هوکها، شما میتوانید عملکرد و نمایش سایت خود را به صورت دلخواه تغییر دهید و با توجه به نیازهای خاص خود تغییراتی اعمال کنید.
به این ترتیب، هوکها به شما اجازه میدهند تا به صورت اتوماتیک و در زمانهای خاص، تغییراتی در وب سایتتان اعمال کنید. این باعث میشود تا سایت شما به طرزی انعطافپذیرتر و بهتر به نیازها و مواقع تغییرات واکنش نشان دهد.
هوکها در وردپرس به دو نوع اصلی تقسیم میشوند: هوکهای اکشن و هوکهای فیلتر.
هوک اکشن (Action Hooks)
هوکهای اکشن در وردپرس، نقاطی از زمان اجرای کد هستند که شما میتوانید توابع و قطعههای کد خود را به آنها متصل کنید تا در لحظههای مشخصی از اجرای وبسایت فراخوانی شوند. به این ترتیب، شما میتوانید کنترل دقیقتری بر روند اجرای وردپرس داشته باشید و تغییرات و عملکرد اضافی را به وبسایت خود اعمال کنید.
برای ایجاد یک هوک اکشن، ابتدا باید نام هوک مورد نظرتان را انتخاب کنید. سپس تابع یا قطعه کد مورد نظرتان را تعریف میکنید و این تابع را با استفاده از تابع add_action()
به هوک متصل میکنید. وقتی که وقوع هوک در فرآیند اجرای وبسایت تشخیص داده شود، تابع شما فراخوانی میشود و کدهای آن اجرا میشوند.
یک مثال ساده از هوک اکشن میتواند در مواقعی باشد که میخواهید کدی را قبل یا بعد از نمایش محتوای پست یا صفحه اجرا کنید. به عنوان مثال، اگر میخواهید تبلیغاتی را قبل از نمایش محتوا در یک پست نمایش دهید، میتوانید یک هوک اکشن را در نقطه مناسبی از کد اجرا کنید و تابع تبلیغاتی خود را به آن متصل کنید.
function custom_advertisement() {
echo '<div class="advertisement">Your ad content here</div>';
}
add_action('before_content_display', 'custom_advertisement');
در این مثال، ما یک هوک اکشن به نام 'before_content_display'
ایجاد کردهایم و تابع custom_advertisement()
را به آن متصل کردهایم. این تابع در هنگام نمایش محتوای پست یا صفحه، تبلیغاتی را نمایش میدهد.
به این ترتیب، هوکهای اکشن به شما امکان اجرای کدها در لحظات خاصی از فرآیند وردپرس را میدهند و این امکان را به شما میدهند که به راحتی عملکرد و قابلیتهای وردپرس را به نیازهای خاص خود تنظیم کنید.
هوک فیلتر (Filter Hooks)
هوکهای فیلتر در وردپرس، نقاطی از کد هستند که به شما اجازه میدهند مقدار یک متغیر یا محتوا را پس از گذر از یک عمل مشخص تغییر دهید. این نوع هوکها معمولاً برای تغییر و تنظیم دادهها قبل از نمایش آنها برای کاربران استفاده میشوند. همچنین، با استفاده از هوکهای فیلتر میتوانید اطلاعاتی را قبل از ذخیره شدن در پایگاه داده تغییر دهید.
برای ایجاد هوک فیلتر، ابتدا باید نام هوک مورد نظرتان را انتخاب کنید. سپس تابع یا قطعه کد مورد نظرتان را تعریف میکنید و این تابع را با استفاده از تابع add_filter()
به هوک متصل میکنید. وقتی که کد شما در طی فرآیند اجرای وردپرس اجرا میشود و به هوک فیلتر میرسد، تابع شما فراخوانی میشود و میتوانید مقدار مورد نظر را تغییر دهید و آن را به عنوان خروجی برگردانید.
فرض کنید شما یک وبسایت فروشگاهی دارید که محصولات دارای تخفیفهای متفاوتی هستند. با استفاده از هوک فیلتر، میتوانید این تخفیفها را به تمام محصولات اعمال کنید:
function apply_discount_to_product_price($price, $product) {
// درصد تخفیف مورد نظر
$discount_percentage = 10;
// محاسبه قیمت با تخفیف
$discounted_price = $product->get_regular_price() * (1 - ($discount_percentage / 100));
// قیمت جدید با فرمت مناسب
$formatted_price = wc_price($discounted_price);
return $formatted_price;
}
add_filter('woocommerce_get_price_html', 'apply_discount_to_product_price', 10, 2);
در این مثال، ما تابع apply_discount_to_product_price()
را به هوک فیلتر woocommerce_get_price_html
متصل کردهایم. این تابع قیمت محصول را دریافت میکند و با توجه به درصد تخفیف محاسبه میکند، سپس قیمت تخفیفدار را با فرمت مناسب به عنوان خروجی برمیگرداند. این مثال نشان میدهد که چگونه با استفاده از هوکهای فیلتر میتوانید دادههای موجود در وردپرس را در طی عملیاتی مانند نمایش قیمت محصول تغییر دهید.
نتیجه گیری
به طور کلی، هوکهای اکشن بیشتر در نقاطی که میتوانید توابع را درون آنها اجرا کنید، مفید هستند. به عنوان مثال، هوکهای اکشن میتوانند در مراحل مختلف ایجاد پست، نمایش اطلاعات و … قرار گیرند.
هوکهای فیلتر به شما این امکان را میدهند تا قبل از نمایش داده به کاربران، آنها را تغییر دهید. به عبارت دیگر، هوکهای فیلتر میتوانند در تغییر مقادیری که از دیتابیس دریافت میشوند، مورد استفاده قرار گیرند.
برای مشاهده لیست تمام هوکهای موجود در وردپرس، بهترین راه این است که به مستندات رسمی وردپرس مراجعه کنید. در اینجا چند منبع که میتوانید از آنها استفاده کنید، آمده است:
- Codex وردپرس: وردپرس یک مستند آنلاین به نام “Codex” دارد که شامل اطلاعات جامعی در مورد هوکها، فیلترها و سایر موارد است. میتوانید به Codex وردپرس مراجعه کنید و در قسمت “Hooks” و “Plugin API” به دنبال اطلاعات مورد نظر خود بگردید.
- سایت Developer WordPress: سایت Developer WordPress منبع اصلی برای مستندات توسعهدهندگان وردپرس است. شما میتوانید در قسمت “Reference” به بخشهای “Hooks” و “Plugin API” مراجعه کرده و لیست کاملی از هوکها، فیلترها و توابع را بیابید.
- افزونهها و پکیجهای توسعه وردپرس: برخی از افزونههای توسعه وردپرس مانند “Query Monitor” یا “Debug Bar” ابزارهایی را فراهم میکنند که به شما امکان مشاهده هوکها و فیلترها در زمان اجرا میدهند.
- جستجوی آنلاین: اگر به دنبال هوکها یا فیلترهای خاصی هستید، میتوانید از موتورهای جستجوی آنلاین استفاده کنید و به صفحات وب سایتها و منابع معتبری که در مورد وردپرس و توسعه آن صحبت میکنند، مراجعه کنید.
در نهایت، برای مطالعه و یادگیری بهتر هوکها و فیلترهای وردپرس، مهم است که با مستندات رسمی آشنا شوید و با استفاده از منابع مختلف، عمقی بیشتر در این زمینه پیدا کنید.