شروع کار با قلاب ها
محدودیتی برای استفاده از قلاب ها در نظر گرفته نشده است. قلاب ها میتوانند در تمام افزونهها به کار گرفته شوند. برای استفاده از هر قلاب لازم است نام آن را مورد استفاده قرار دهید.
در قسمت تنظیمات قالب » قلابها (Hooks) شما این امکان را خواهید داشت تا کدهای PHP اختصاصی خود را بدون نگرانی از پاک شدن در هر بروزرسانی قرار دهید. قلابها در واقع کدهای PHP هستند که به شما این قابلیت را خواهند داد تا بدون کوچکترین تغییری در کدهای اصلی قالب، قسمتی از عملکرد قالب را تغییر دهید.
نیاز به قلاب جدیدی دارم که وجود ندارد!
ما باتوجه به درخواستهای کاربران سعی میکنیم قلابهای جدیدی را به قالب اضافه کنیم. اگر قصد دارید قسمتی از قالب را تغییر دهید که برای آن قلاب در نظر گرفته نشده، میتوانید برای ما تیکت ارسال کنید تا قلاب جدیدی را به قالب اضافه کنیم.
قلاب ها چطور کار میکنند؟
قلابها طبق استاندارد جهانی وردپرس به راحتی قابل استفاده هستند. با استفاده یک نام در اختیار شما قرار میگیرند که شما میتوانید با استفاده از action یا filter بودن آن تصمیم بگیرید دقیقا چه اتفاقی بیفتد.
تفاوت filter و action چیست؟
اینکه دقیقا از کدام استفاده کنید در قسمت راهنمای هر قلاب درج شده اما بطور کلی زمانی که قرار باشد یک عملیات جدید به قالب اضافه شود باید از action و زمانی که قرار است قسمتی از دادهها، در قالب return تغییر کند از filter استفاده میشود.
اگر خطایی در کدهای من رخ داد چه اتفاقی میفتد؟
کدهایی که از قسمت تنظیمات » قلابها (Hooks) به قالب اضافه کنید تاثیری در عملکرد کلی سایت نخواهد گذاشت. قالب سعی میکند خطا را به شما نمایش دهد اما هیچ خطایی موجب از دسترس خارج شدن سایت شما نخواهد شد.
تغییرات من در صفحه تنظیمات قلابها اعمال نمیشود!
به دلیل اینکه ممکن است قسمتی از کدهای شما درد سر ساز شوند، عامدانه کدهای شما در صفحه تنظیمات قلاب ها اثرگذار نخواهد بود. برای مشاهده تغییرات، لازم است در صفحات دیگر آزمایش کنید.
ساختار کلی قلاب ها
قلاب ها با استفاده از توابع add_action و add_filter اضافه میشوند.
add_action( string $hook_name, callable $callback, int $priority = 10, int $accepted_args = 1 );
add_filter( string $hook_name, callable $callback, int $priority = 10, int $accepted_args = 1 );
میتوانید action و filter های دلخواه خود را بصورت callable یا string وارد کنید.
add_action( 'name', function() {
echo 'your code';
} );
یا
add_action( 'name', 'amzshyar_test' );
function amzshyar_test() {
echo 'your code';
}
برای filter هم دقیقا به همین صورت میتوانید عمل کنید.