دوستان سلام.
شاید اصطلاح هوک hook را شنیده باشید.
این اصلاح را بیشتر کسانی که با برنامه نویسی و مسایل فنی وردپرس سر و کار دارند به کار می برند و خیلی کم پیش می آید که سایر کاربرها از این کلمه استفاده کنند.
اگر دوست دارید بدانید این کلمه در وردپرس به چه معنی است و چه کاربردی دارد تا انتهای این مطلب با ما باشید.
هوک hook به چه معنی است؟
کلمه ی hook در زبان انگلیسی به معنی قلاب است.
در برنامه نویسی وردپرس , هوک ها ( قلاب ها ) کدهایی هستند که امکان اتصال سایر کدها به وردپرس را فراهم می کنند.
یعنی شما می توانید کدهای خودتان را در قالب یک تابع به کدهای وردپرس متصل کنید یا اصطلاحا به وردپرس هوک ( قلاب ) بزنید.
بگذارید با ذکر مثال , بحث را ساده تر و روشن تر کنیم.
عبارت wp_head را در نظر بگیرید.
این عبارت یک هوک ( قلاب ) است که به شما امکان می دهد کد مورد نظرتان را به بخش هدر وردپرس متصل کنید.
برای این کار ابتدا یک تابع می نویسیم :
[php]
function dorpress_test_hook(){
echo ‘
<h1>good morning iran</h1>
‘;
}
[/php]
سپس آن را به شکل زیر به هدر وردپرس هوک ( قلاب ) می زنیم :
[php]
add_action(‘wp_head’,’dorpress_test_hook’);
[/php]
همان طور که ملاحظه می فرمایید ما در بالا یک تابع به نام add_action را فراخوانده ایم و آرگومان اول آن را رشته ی wp_head و آرگومان دوم آن را رشته ی dorpress_test_hook قرار داده ایم.
این کار باعث می شود که تابع ما ( که اصطلاحا callback خوانده می شود ) به کدهای وردپرس در بخش هدر متصل شود و این کدها آن جا پردازش شده و نتیجه نمایش داده شود.
در وردپرس چند نوع هوک داریم؟
به طور کلی در وردپرس دو نوع هوک ( قلاب ) اصلی وجود دارد که عبارتند از : اکشن ها و فیلترها.
اکشن ها هنگامی فراخوانی می شوند که یک رویداد خاص رخ می دهد و به پایان می رسد درست مثل روشن و خاموش شدن یک چراغ.
مثلا اگر شما دگمه ی انتشار پست را کلیک کنید یک رویداد خاص به نام انتشار پست رخ می دهد و برای این رویداد چند اکشن وجود دارد که یکی از آن ها عبارت است از : save_post .
شما می توانید با هوک ( قلاب ) زدن به این اکشن , یک کد خاص را اجرا کنید مثلا کد ارسال ایمیل به مدیر سایت :
[php]
add_action(‘save_post’,’send_dorpress_email’,10,1);
function send_dorpress_email($post_id){
$admin_email=get_bloginfo(‘admin_email’);
$subject=’پست با شناسه ‘.$post_id.’منتشر شد’;
$message=’سلام پست شما منتشر شد’;
wp_mail($admin_email,$subject,$message,”);
}
[/php]
نکته : تابع add_action چهار آرگومان می پذیرد که آرگومان اول نام هوک , آرگومان دوم نام تابع شما , آرگومان سوم اولویت اجرای هوک و آرگومان چهارم تعداد پارامترهایی است که از هوک به تابع شما ارجاع داده می شود.
فیلترها توابعی هستند که اطلاعات ارسالی از طرف وردپرس را مطابق میل شما پردازش کرده و مجددا به وردپرس ارسال می کنند ( مهم ترین تفاوت اکشن و فیلتر در باز گرداندن اطلاعات به وردپرس است به گونه ای که اکشن ها اطلاعاتی به وردپرس باز نمی گردانند اما فیلترها اطلاعاتِ اصلاح شده را به وردپرس باز می گردانند ).
فیلتر filter در لغت به معنی صافی است و چیزی است که اجازه ی عبور برخی چیزها را می دهد و اجازه ی عبور برخی چیزهای دیگر را نمی دهد.
عبارت the_title را در نظر بگیرید.
این عبارت , یک فیلتر است که به شما اجازه می دهد عنوان همه ی پست های سایتتان را مطابق میلتان اصلاح کنید.
مثلا ما می خواهیم عنوان همه ی پست های سایت را با عبارت ” دُرپرس عاشق شما است” جایگزین کنیم. در این صورت به فیلتر بالا هوک می زنیم :
[php]
add_filter(‘the_title’,’dorpress_new_title’);
function dorpress_new_title(){
return ‘دُرپرس عاشق شما است!’;
}
[/php]
همان طور که ملاحظه می فرمایید در تابع بالا ما عبارت مورد نظر خود را به وردپرس برگردانده ایم و وردپرس این عبارت را جایگزین عنوان پست های سایت کرده است.
به بیان دیگر ما اطلاعات دریافتی از وردپرس را فیلتر کرده و آن را با اطلاعات مورد نظر خودمان جایگزین کرده ایم ( اطلاعات را از صافی مورد نظر خودمان عبور داده ایم. به این ترتیب آن اطلاعاتی که دوست داشته ایم از صافی عبور کرده اند و بقیه ی اطلاعات پشت صافی مانده اند).
خب دوستان. امیدوارم که این مطلب هم برایتان مفید واقع شده باشد. خوشحال می شوم نظرات شما را بخوانم.