هوک وردپرس چیست و چکار میکند
هوک وردپرس چیست و برای چه میتوان از آن استفاده کرد؛ وردپرس یک CMS است که به شدت قابلیت شخصی سازی دارد، و به کاربران اجازه میدهد بر اساس خواستههای خود تغییر ایجاد کنند. بعضی از کاربران وردپرس خود را تنها بر اساس عملکرد ظاهری شخصیسازی میکنند در حالی که بقیه عملکردهای شخصی سازی خود را با استفاده از هوکهای وردپرس اضافه میکنند.
هوک وردپرس(قلاب وردپرس) چیست؟
WordPress Codex هوکها را به عنوان پلهایی تعریف میکند که از طریق آن قالب و پلاگین های وردپرس با هسته وردپرس در تعامل هستند. عملکرد قلابها به توسعه دهندگان اجازه میدهد کدشخصی خود را با فانکشنهای پیشفرض در هسته وردپرس متصل کنند.
میتوان گفت که قلابها فانکشنهای PHP شخصی هستند که میتوان از آنها برای تغییر دادن رفتار پیشفرض وردپرس بدون اثر گذاشتن بر فایل های هسته استفاده کرد. هوکها به وردپرس اجازه میدهد با کدهای شخصی حاضر در پلاگین ها و فایل functions.php در تعامل باشد.
دو نوع هوک وجود دارد:
- هوکهای عملکردی
- هوکهای فیلتر
هوک وردپرس عملکردی
هوکهای عملکردی در زمانی بخصوص، برای انجام یک سری اعمال مانند نشان دادن یک خروجی و یا اضافه کردن داده به دیتابیس اجرا میشوند. قلابهای عملکردی هیچ مقداری را باز نمیگردانند و تنها میتواند کاری را که برای آن فراخوان داده شده اند اجرا کنند.
به عنوان مثال، عملکرد Create_category زمانی که یک دسته بندی جدید ساخته میشود به کار می افتد اما چیزی را باز نمیگرداند.
هوک وردپرس فیلتر
هوک های فیلتر، به شما اجازه میدهد داده ها را در طول اجرا کردن وردپرس تغییر دهید. اعمالی که به فیلترها متصل شده اند متغیر ها را قبول میکنند و مقدار را بر میگردانند بعضی فیلترها بیشتر از یک آرگومان را قبول میکنند.
به عنوان مثال add_filter(‘the_title’, ‘strrev’); استرینگ را به عنوان یک آرگومان شناسایی کرده و برعکس آن استرینگ را باز میگرداند.
فیلترها برای انجام اقدامات به خصوصی استفاده میشوند و میتوانند داده ها را تغییر داده و همیشه در نهایت یک مقدار را باز میگردانند
اکنون که ایده اصلی هوک های وردپرس را میدانید، بیایید رو به جلو رفته و نگاهی به نحوه عملکرد هوکهای اکشن و فیلتر بیاندازیم:
مثال های هوک وردپرس عملکردی(اکشن)
بیش از 200 هوک در دسترس هستند که پرداختن به همه آنها فکر خوبی نیست. هرچند برای شروع یک مثال ساده را خواهیم گفت و سپس توضیح میدهم چه کار کرده ایم.
مثال 1: منوی شخصی سازی شده در قسمت ادمین
function custom_menu() {
add_menu_page( 'custom menu title', 'custom menu', 'manage_options', 'testplugin/testplugin-admin.php', '', 'dashicons-admin-site', 6 );
}
add_action( 'admin_menu', 'custom_menu' );
بیایید کد بالا را خط به خط بررسی کنیم، در اولین خط کد، من بر روی عملکرد خود اسم گذاشتم. در خط دوم، من یک عمل دیگر را با چند آرگومان داخلش فرا میخوانم. در نهایت من اقدام شخصی خودم را با یک هوک عملکردی ‘admin_menu’ که هرزمان منوی ادمین درگیر است عملکرد من را اجرا میکند.
مثال 2: اضافه کردن متن شخصی سازی شده پس از Header
// Add custom text after the header
function add_custom_text() {
if ( !is_front_page() )
return;
// Echo the html
echo "<div>Avail the special summer discount 20%</div>";
}
add_action( '__after_header' , 'add_custom_text' );
در کد بالا، اگر صفحه فعلی شما صفحه نخست نیست، پس این عمل متن شخصی سازی شده را نشان نمیدهد. که اصولا به این معنا است که متن شخصی سازی شده بر روی صفحه نخست وبسایت شما نمایش داده میشود.
در پایان هر قطعه کد،کد شخصیسازی شده را برای یک هوک عملکردی ‘__after_header’ را وصل کردیم.
مثال هوک وردپرس فیلتر
برخلاف هوکهای عملکردی، فیلتر آرگومانها را قبول کرده و یک مقدار بر میگرداند. بیایید نگاهی به مثال ها بیاندازیم و ببینیم چگونه میتوان از آنها استفاده کرد.
مثال 1: تغییر طول منتخب
function excerpt_length_example( $words ) {
return 15;
}
add_filter( 'excerpt_length', 'excerpt_length_example' );
در کد بالا، یکی از فیلترهای وردپرس به نام ‘excerpt_length’ استفاده شده و آن را با کد شخصی که مقدارد عددی 15 را برای طول منتخب جدید بازمیگرداند.
مثال 2: تغییر دادن عنوان
// Change title
function change_title($title) {
return 'Hooked: '.$title;
}
add_filter( 'the_title', 'change_title' );
در این مثال ساده، من به سادگی یک عمل شخصی را برای تغییر دادن عنوان پست تعریف کرده ام. بعدا آن را به یک فیلتر ‘the_title’ متصل میکنم.
جمع بندی
هوک وردپرس در متصل کردن عملکردهای شخصی با ویژگی هسته ای وردپرس شما مفید هستند. در این راهنما، ما دیدیم که قلاب های عملکردی و قلاب های فیلتر چه تفاوت هایی دارند، و چگونه میتوان از آن ها در مکان های مختلف در در سایت های وردپرس خود استفاده کنیم.
1 دیدگاهها
ali
سپتامبر 15, 2021
سلام ممنون بابت مطلب خوبتون
یه سوال داشتم
در این قسمت add_action( ‘admin_menu’, ‘custom_menu’ );
admin_menu یه نام اختیاری هستش یا یه آرگومان از قبل تعریف شده در ورد پرس؟
دیدگاه بسته است.