هوک چیست؟#

وردپرس در جاهای زیادی از کد خود «نقطه‌ی اتصال» گذاشته است. برنامه‌نویس می‌تواند تابع خودش را به آن نقطه وصل کند تا در لحظه‌ی مشخصی اجرا شود یا داده‌ای را تغییر دهد. به این نقاط هوک یا قلاب می‌گویند.

دو نوع هوک#

اکشن: کاری را در لحظه‌ای انجام می‌دهد. مثلاً وقتی نوشته‌ای منتشر شد، ایمیل بفرست.

فیلتر: مقداری را می‌گیرد، تغییر می‌دهد و پس می‌دهد. مثلاً طول خلاصه‌ی مقاله را عوض کن.

مثال ساده#

PHP
add_filter('excerpt_length', function () {
    return 30;
});

این کد خلاصه‌ی نوشته را به ۳۰ کلمه محدود می‌کند، بدون اینکه فایلی از وردپرس را دست بزنید.

چرا مهم است؟#

  • افزونه‌ها و قالب‌ها همه با هوک کار می‌کنند
  • تغییرات شما با به‌روزرسانی وردپرس از بین نمی‌رود
  • چند افزونه می‌توانند همزمان به یک نقطه وصل شوند

کجا بنویسیم؟#

کدهای هوک را در افزونه‌ی اختصاصی یا در functions.php قالب فرزند بگذارید، نه در هسته.

اشتباه رایج#

ویرایش مستقیم فایل‌های هسته. هر به‌روزرسانی آن را پاک می‌کند و ممکن است سایت را خراب کند.

ترتیب اجرا#

هر هوک اولویت عددی دارد. وقتی چند تابع به یک هوک وصل‌اند، عدد کوچک‌تر زودتر اجرا می‌شود. اگر تغییرتان اثر نمی‌کند، شاید تابع دیگری بعد از شما اجرا شده و نتیجه را عوض کرده است.