وردپرس یکی از قدرتمندترین و محبوبترین سیستمهای مدیریت محتوا است که بسیاری از وبسایتهای بزرگ و کوچک از جمله ایوسی از آن استفاده میکنند. اما تا به حال شده که نیاز داشته باشید یک تغییر خاص را در وبسایت خود انجام دهید و برای این منظور بخشی از کد وردپرس را ویرایش کنید؟ در چنین مواقعی، WordPress Hooks (قلاب های وردپرس) میتوانند یک راه حل مناسب باشند.
قلاب ها در وردپرس چیستند؟
قلاب ها در وردپرس نقاطی از کد هستند که میتوانید به آنها فایلهای خود را متصل کنید تا هنگامی که رخداد خاصی رخ میدهد، کد شما اجرا شود. بهعنوان مثال، شما میتوانید قلابی را در نظر بگیرید که در هنگام ثبت نام کاربران جدید اجرا شود یا در هنگام اضافه کردن یک پست جدید به وبسایت.
انواع قلاب ها
در وردپرس دو نوع قلاب وجود دارند: قلابهای اکشن (action hooks) و قلابهای فیلتر (filter hooks).
۱. قلابهای اکشن
قلابهای اکشن یا action hooks در مکان های مختلفی از کد وردپرس قرار دارند و وقتی این قلاب فراخوانی میشود، تمام فایلهای متصل به آن اجرا میشوند. این قلاب برای انجام عملیاتی مناسب است مانند نمایش پیغامی بعد از ثبت نام کاربران جدید یا انجام یک عملیات خاص در هنگام بارگزاری وبسایت است.
قلابهای اکشن در وردپرس معمولا به شکل تابعهایی تعریف میشوند که در محل خاصی از کد قرار میگیرند. زمان فراخوانی یک قلاب از طریق تابع do_action() صورت میگیرد. به عنوان مثال، وقتی یک کاربر جدید در وبسایت ثبت نام میکند، قلاب “user_register” فراخوانی میشود. در این حالت میتوانیم تابعی را که برای انجام یک عملیات خاص مورد نظر است را به این قلاب متصل کنیم.
برای اتصال یک تابع به یک قلاب، از تابع add_action() استفاده میشود. این تابع سه پارامتر را دریافت میکند: نام قلاب، نام تابع و اولویت. اولویت به صورت یک عدد صحیح تعیین میشود و مشخص میکند که تابع متصل شده در لیست قلابها کدام قبل از کدام اجرا شود.
قلابهای اکشن به توسعهدهندگان این امکان را میدهند تا هنگام بروز رخدادی در وبسایت، به سادگی توابع خود را به آن ارتباط دهند و اقداماتی را انجام دهند.
مهمترین قلابهای اکشن در وردپرس شامل موارد زیر هستند:
- init: این قلاب هنگامی که وردپرس آماده استفاده شود فراخوانی میشود. این قلاب معمولا برای انجام تنظیمات اولیه وردپرس استفاده میشود.
- wp_head: این قلاب هنگامی که بخش <head> صفحه را بارگزاری میکند فراخوانی میشود. این قلاب برای اضافه کردن کدهای CSS و JS به صفحه استفاده میشود.
- wp_footer: این قلاب در انتهای صفحه قرار میگیرد و هنگام بارگزاری بخش پایین صفحه صدا زده میشود. معمولا برای اضافه کردن کدهای JS استفاده میشود.
- get_footer: این قلاب در قسمت پایانی پوسته قرار میگیرد و هنگام به پایان رسیدن بخش بدنه صفحه فراخوانی میشود. معمولا برای اضافه کردن محتوایی به انتهای صفحه استفاده میشود.
- wp_login: این قلاب هنگام ورود کاربران به سایت فراخوانی میشود. معمولا برای انجام عملیاتی برای کاربران وارد شده استفاده میشود.
مهمترین قلابهای اکشن در وردپرس بسیار زیاد هستند و میتوانید بر اساس نیاز خود قلابهای دلخواه خود را ایجاد کرده و توابع مورد نظر را به آن متصل کنید.
۲. قلابهای فیلتر
قلابهای فیلتر یا filter hooks نیز در مکانهای گوناگونی از کد وردپرس قرار دارند و هنگامی که یک قلاب فراخوانی میشود، تمامی فیلترهای متصل به آن به ترتیب اجرا میشوند و عملیات مورد نظر روی دادهها انجام میشود. این قلاب برای تعیین و تغییر مقادیر مورد استفاده است و میتوان برای مثال با استفاده از قلاب فیلتر، عنوان یک پست را تغییر داد.
هرف که یک قلاب فراخوانی میشود، تمامی فیلترهای متصل به آن به ترتیب اجرا میشوند و هر کدام تغییرات مورد نظر را در دادهها انجام میدهند. برای استفاده از قلابهای فیلتر در وردپرس، ابتدا باید یک عملکرد تعریف کرده و فراخوانی قلاب مورد نظر را در آن انجام دهید. سپس فیلترها را برای این قلاب اضافه کنید تا عملکرد مورد نظر به ترتیب اجرا شود.
مثال:
function change_post_title($title) { $new_title = "New Title"; return $new_title; } add_filter('the_title', 'change_post_title');
در این مثال، عملکرد change_post_title تعریف شده است و در فیلتر the_title فراخوانی شده است. این قلاب فیلتر عنوان پست را به “New Title” تغییر میدهد.
قلابهای فیلتر در وردپرس امکانات بسیاری را برای مدیریت و سفارشیسازی دادهها در دسترس قرار میدهند. با استفاده از این قابلیت، میتوانید به طور دقیق بر روی دادهها عمل کرده و آنها را همانند نیاز خود تغییر دهید.
Hooks vs Actions vs Filtersقلاب ها (Hooks) و اکشن ها (Actions) و فیلترها (Filters) همه بفروش جلوه های مهم و اساسی از معماری قالب و افزونه های وردپرس هستند. آنها به توسعه دهندگان اجازه می دهند تا در هنگام اجرای کد، به قسمت های مختلف سایت وردپرس دست بزنند و آنها را به دلخواه خود تغییر دهند. قلاب ها یا Hooks:قلاب ها در واقع نقاط مشخص و مهمی در جریان اجرای کدهای وردپرس هستند. آنها به توسعه دهندگان اجازه می دهد تا برنامه های خود را به مکان های مشخصی در قالب و افزونه ها وصل کنند. هر کدام از این قلاب ها مراحل مشخصی در طول عملکرد وردپرس را نشان می دهند. قلاب ها همچنین به توسعه دهندگان اجازه می دهند تا کدهای خود را قبل و بعد از یک عمل خاص در وردپرس قرار دهند. اکشن ها یا Actions:اکشن ها مانند قلاب ها هستند، اما تنها در یک نقطه خاص از کد اجرا می شوند. در واقع، آنها تابعی هستند که در یک قلاب مشخص قرار می گیرد و در یک نقطه خاص از کد وردپرس اجرا می شود. به عنوان مثال، یک اکشن می تواند قرار داده شود تا در هر بار ثبت نام کاربر جدید، عملیات خاصی انجام دهد. فیلترها یا Filters:فیلترها همچنین نوعی از اکشن ها هستند و این اجازه را به توسعه دهندگان می دهند که مقدار یا خروجی یک تابع مشخص را در اپلیکیشن وردپرس تغییر دهند. به عنوان مثال، یک فیلتر می تواند مقدار متنی خاصی را قبل از ذخیره کردن در دیتابیس تغییر دهد یا مقدار خروجی یک تابع را تغییر دهد. همچنین می توان گفت که قلاب ها، اکشن ها و فیلترها اجازه می دهند که در همه ی بخش های سیستم وردپرس تغییراتی را اعمال کنید، از جمله قالب ها، افزونه ها، مدیریت محتوا و حتی دیتابیس. این نقاط کلیدی در توسعه وردپرس بسیار قدرتمند و کارآمد هستند و به توسعه دهندگان امکان می دهند تا قابلیت های سفارشی را به سیستم وردپرس اضافه کنند. |
چگونه از قلاب ها استفاده کنیم؟
برای استفاده از قلاب ها در وردپرس، ابتدا باید یک تابع بنویسید و کد مورد نظر خود را در آن قرار دهید. سپس این تابع را به قلاب مربوطه متصل کنید. برای مثال، اگر میخواهید یک تابعی را هنگام ثبت نام کاربران جدید اجرا کنید، میتوانید این تابع را به قلاب ‘user_register’ متصل کنید.
function my_function() { // کد شما در اینجا } add_action('user_register', 'my_function');
همانطور که در مثال بالا مشاهده میکنید، تابع ‘my_function’ به قلاب ‘user_register’ متصل شده است. همچنین میتوانید با استفاده از تابع ‘add_filter’، تابع خود را به یک قلاب فیلتر متصل کنید. برای مثال:
function change_post_title($title) { // کد شما در اینجا return $title; } add_filter('the_title', 'change_post_title');
در این مثال، تابع ‘change_post_title’ به قلاب ‘the_title’ متصل شده و هر بار که عنوان یک مطلب نمایش داده میشود، این تابع اجرا میشود و محتویات آن تغییر میکند. سپس عنوان تغییر یافته برگشت داده میشود.
با استفاده از قلاب ها، میتوانید کدهای خود را در لحظههای مشخصی در وردپرس اجرا کنید و عملکرد سایت خود را سفارشی کنید. این قلاب ها به شما امکان میدهند در مواقعی که به تغییرات و تعامل با وردپرس نیاز دارید، کدهای خود را درج کنید و از قابلیت های وردپرس بهره ببرید.
مزایا و کاربردهای قلاب ها
استفاده از قلاب ها در وردپرس به شما امکان میدهد تا بدون ویرایش کدهای اصلی وردپرس، تغییرات و اصلاحاتی را در وبسایت خود ایجاد کنید. این باعث میشود که هنگام بهروزرسانی وردپرس، تغییرات شما از بین نرود و نیازی به انجام مجدد تغییرات نداشته باشید.
کاربردهای قلابها بسیار گسترده است. با استفاده از قلابهای اکشن، میتوانید نمایش پیغامها یا ایجاد تغییرات ظاهری بر روی صفحات را بدون ویرایش قالب انجام دهید. همچنین با استفاده از قلابهای فیلتر، میتوانید مقادیر مورد نظر را اصلاح کنید و یا تغییراتی در پستها و صفحات ایجاد کنید.
یکی از مزایای استفاده از قلاب ها، امکان اصلاح و تغییر شخصی سازی وردپرس بدون نیاز به ویرایش کدهای اصلی است. این امکان را برای تغییراتی مانند افزودن یا حذف تگ ها، برپایی کانتکست های خاص و نیز مدیریت و حذف داده ها ارائه می دهد.
بعضی از کاربردهای قلاب ها عبارتند از:
- ایجاد افزونه های سفارشی: با استفاده از قلاب ها، می توانید افزونه های سفارشی خود را بنویسید و به وبسایت اضافه کنید. این افزونه ها شامل قابلیت های جدید و قابلیت های منحصر به فردی می باشند و باعث بهبود عملکرد و قابلیت های وردپرس می شوند.
- ایجاد تلاشگری: از قلاب ها در وردپرس می توان برای ایجاد قابلیت های جدیدی مانند تلاشگری استفاده کرد. این قابلیت به کاربران اجازه می دهد تا جستجوی پیشرفته تری را انجام دهند و به دنبال مطالب خاص و متمایزی بگردند.
- ایجاد فیلتر ها: قلاب های فیلتر به شما امکان می دهند تا مقادیر و پارامتر های مختلف را تغییر دهید و به صفحات وبسایت تغییراتی دهید. با استفاده از این قابلیت می توانید به عنوان مثال، نمایش آگهی های تبلیغاتی را محدود کنید یا اطلاعاتی را از صفحات خاص حذف کنید.
- افزایش سرعت و بهینه سازی: با استفاده از قلاب ها می توانید کدهای اضافی را ارتقاء دهید و بهینه سازی کنید. این به شما امکان می دهد تا صفحات وبسایت سریع تر بارگیری شوند و تجربه کاربری بهتری را ارائه دهید.
به طور کلی، استفاده از قلاب ها در وردپرس به شما امکان می دهد تا به صورت دقیقتری کنترل کنید و قابلیت های خاص و منحصر به فردی را در وبسایت خود اضافه کنید.
قلاب ها و عملکرد آنها را کجا ثبت کنیم؟
برای ثبت قلاب های وردپرس خود میتوانید از دو روش استفاده کنید:
- ثبت در پوشه wp-content/plugins: اولین راه برای ثبت قلاب ها، ایجاد یک پوشه جدید در دایرکتوری wp-content/plugins هست که در پوشه اصلی وبسایت شما قرار دارد. پس از ایجاد پوشه جدید، میتوانید فایل های قلاب خود را داخل این پوشه قرار دهید و آنها را فعال کنید.
- ثبت از طریق فایل functions.php: دومین روش این است که قلاب های خود را در فایل functions.php تم قالب وردپرس خود ثبت کنید. برای این منظور، شما میتوانید فایل functions.php را در مسیر wp-content/themes/your-theme-name قرار دهید و قلاب های خود را در این فایل ثبت کنید.
دقت کنید که قبل از اعمال هر تغییری در فایل های اصلی وردپرس، حتما از پشتیبانی کامل سایت خود اطمینان حاصل کنید.
قلاب های وردپرس کجا ذخیره می شوند؟
قلاب های وردپرس به صورت پیش فرض در پوشه `wp-content/themes/` ذخیره می شوند. هر قالب وردپرس که شما بر روی سایت خود فعال کنید، در این پوشه قرار دارد. همچنین، برخی از افزونه ها می توانند قلاب ها را در پوشه `wp-content/plugins/` ذخیره کنند. این پوشه حاوی افزونه هایی است که شما بر روی سایت خود نصب و فعال کرده اید.
همچنین، شما همچنین می توانید قلاب ها را در پوشه `wp-content/mu-plugins/` ذخیره کنید. این پوشه مخصوص قلاب هایی است که قبل از بارگذاری هر گونه قالب یا افزونه، جداگانه بارگذاری می شوند.
توجه داشته باشید که پوشه های قالب، افزونه و mu-plugins باید قابل نوشتن توسط وب سرور باشند. اگر اجازه نوشتن در این پوشه ها وجود نداشته باشد، شما قادر به اضافه کردن قلاب ها نخواهید بود.
فهرست و منابع قلاب های وردپرس
منابعی که میتوانید برای یافتن قلابهای وردپرس استفاده کنید عبارتند از:
- Codex وردپرس: این سایت منبع اصلی برای اطلاعات توسعه وردپرس است و قلابهای مختلف را بررسی میکند. سایت Codex در آدرس https://codex.wordpress.org/ قابل دسترسی است.
- مخزن قلابهای وردپرس در وبسایت wordpress.org: وردپرس سایتی به نام wordpress.org دارد که شما میتوانید در آن قلابهای وردپرس مختلف را به صورت رایگان پیدا کنید. شما میتوانید به آدرس https://wordpress.org/plugins/ بروید و در بخش “افزونه ها” قلابهای مورد نیاز خود را جستجو کنید.
- بازارهای قلابهای وردپرس: بازارهای مختلفی وجود دارند که میزبان قلابها و افزونههای وردپرس هستند. مثالهایی از این بازارها عبارتند از: ThemeForest، CodeCanyon، Elegant Themes و …
- جامعه توسعه دهندگان وردپرس: سوال کردن از جامعه توسعه دهندگان وردپرس میتواند بسیار مفید باشد. شما میتوانید به انجمنهای بحث وردپرس مدیریت وردپرس، Slack وردپرس و گروههای توسعه وردپرس در شبکههای اجتماعی ملحق شوید و سوال خود را مطرح کنید.
- منابع آموزشی آنلاین: برخی از وبسایتها و کانالهای آموزشی برای یادگیری قلابهای وردپرس وجود دارند. با جستجوی “آموزش قلاب وردپرس” میتوانید منابع مختلفی را پیدا کنید.
همچنین، وجود افزونههای وردپرس نیز میتواند راهی برای یافتن قلابهای مختلف باشد. برخی از افزونهها ممکن است قلابهای خاصی برای کارکردن با آنها داشته باشند.چگونه قلاب های سفارشی وردپرس خود را ایجاد کنیم؟
چگونه قلاب های سفارشی وردپرس خود را ایجاد کنیم؟
برای ایجاد قلاب های سفارشی در وردپرس، مراحل زیر را دنبال کنید:
۱. ابتدا کد زیر را در فایل functions.php قالب وردپرس خود قرار دهید:
function custom_widgets_init() { register_sidebar( array( 'name' => 'قلاب شماره ۱', 'id' => 'custom-sidebar-1', 'description' => 'این قلاب شماره ۱ است.', 'before_widget' => '<div class="widget">', 'after_widget' => '</div>', 'before_title' => '<h2 class="widget-title">', 'after_title' => '</h2>', ) ); } add_action( 'widgets_init', 'custom_widgets_init' );
در این کد، شما یک قلاب جدید با نام “قلاب شماره ۱” ایجاد کرده اید. شما می توانید تغییرات لازم را در نام، شناسه، توضیحات و سایر ویژگی های قلاب ایجاد شده بر اساس نیاز خود اعمال کنید.
۲. سپس می توانید قلاب خود را در قالب خود اضافه کنید. برای این کار، به فایل قالب خود بروید و کد زیر را در محل مورد نظر قرار دهید:
<?php if ( is_active_sidebar( 'custom-sidebar-1' ) ) : ?> <div id="widget-area" class="widget-area" role="complementary"> <?php dynamic_sidebar( 'custom-sidebar-1' ); ?> </div><!-- #widget-area --> <?php endif; ?>
در این کد، قالب شما بررسی می کند که آیا قلاب مورد نظر فعال است یا خیر و فقط در صورت فعال بودن قابلیت، قلاب را نشان می دهد.
۳. سپس باید قلاب خود را به بخش “ویرایش > نمایش > قوالب” در داشبورد وردپرس لینک دهید. یک فایل باز کننده استایل قالب شما باز خواهد شد. شما باید کد زیر را در این فایل قرار دهید:
#widget-area { /* استایل های مورد نظر خود را اینجا اعمال کنید */ }
با این کار، استایل قلاب مورد نظر خود را تعیین می کنید.
در نهایت، با انجام این مراحل، شما قلاب های سفارشی خود را در وردپرس ایجاد کرده اید. می توانید قلاب های دیگری را نیز به همین روش اضافه کنید.
حذف توابع پاسخ به تماس از قلاب های وردپرس
برای حذف توابع پاسخ به تماس از قلاب های وردپرس، می توانید از تابع remove_all_actions استفاده کنید. این تابع، تمام توابع متصل به یک قلاب را حذف می کند. استفاده از این تابع به شکل زیر است:
remove_all_actions( string $tag, int $priority = false )
در این تابع، $tag پارامتر اول است و نام قلابی است که تمام توابع متصل به آن را می خواهید حذف کنید. $priority پارامتر دوم است و در صورت تنظیم برابر با یک عدد، فقط توابعی با این اولویت را حذف می کند.
برای حذف تابع پاسخ به تماس برای تمام قلاب های وردپرس، می توانید از تابع remove_all_actions به شکل زیر استفاده کنید:
remove_all_actions( 'wp_head' ); remove_all_actions( 'wp_footer' );
این دستورالعمل هر دو تابع مربوط به تمام توابع پاسخ به تماس را از قلاب های ‘wp_head’ و ‘wp_footer’ حذف می کند.
نتیجهگیری
استفاده از قلاب ها در وردپرس به شما اجازه میدهد تا تغییرات خود را به سادگی و با حفظ کدها و پروژه وابسته برایتان ایجاد کنید. با استفاده از قلابهای اکشن و فیلتر، میتوانید سفارشی سازیهای خاص خود را در وردپرس انجام داده و وبسایت خود را بر اساس نیازهای خود شخصی سازی کنید.