تبلیغات
تبلیغات

تابع add_action وردپرس – اضافه کردن اکشن

همانطور که می‌دانید، وردپرس شامل سیستم هوک اکشن می‌باشد که می‌توان مثلا مشخص کرد که پس از انتشار یک پست، چه اتفاقی رخ دهد! در واقع چیزی همانند تعریف رویداد.

تابع add_action، با دریافت نام اکشن مورد نظر ،یک callback (تابعی جهت اجرا) و موارد دیگر، کاری که می‌خواهیم را در زمان روی دادن آن اکشن اجرا می‌کند. مثلا می‌خواهیم پس از انتشار یک پست، یک پیام چاپ شود یا اتفاق دیگری بیفتد.

ورودی‌ها

  • $tag (از نوع string):
    نام اکشن مورد نظر
  • $function_to_add (از نوع callback):
    یک تابع یا نام یک تابعی که در زمان روی دادن اکشن،اجرا می‌شود.
  • $priority (از نوع int) (اختیاری، مقدار پیشفرض = 10):
    اولویت اجرایی کال‌بکی (ورودی قبلی)، نسبت به کال‌بک‌های دیگری که برای این اکشن اضافه شده‌اند را مشخص می‌کند. هرچه مقدار آن کمتر باشد، زودتر از بقیه اجرا خواهد شد.
  • $accepted_args (از نوع int) (اختیاری، مقدار پیشفرض = 1):
    تعداد پارامترهای مورد نیاز. مثلا ممکن است اکشنی 10 پارامتر داشته باشد و ما فقط به 2 مورد آن نیاز داشته باشیم. بنابراین آن را برابر 2 قرار می‌دهیم.

خروجی

(از نوع bool)، همیشه true برمی‌گرداند! (که یعنی خروجی آن فعلا مهم نیست)

مرتبط

سورس تابع اصلی

فایل: wp-includes/plugin.php

مشاهده سورس کامل

هممانطور که می‌بینید، تابع add_action در واقع همان add_filter را اجرا می‌کندکه یعنی و می‌توان به جای استفاده از آن، از add_filter نیز استفاده کرد. ولی پیشنهاد ما این است که از همین تابع استفاده کنید؛ تا اگر وردپرس در آینده تغییرات دیگری نیز به داخل آن اضافه کرد، کد شما دچار مشکل نشود.

مثال

مثال 1: در اینجا تعیین شده است که در زمان روی دادن اکشن publish_post، تابع wpdocs_email_friends به عنوان یک callback اجرا شود. اکشن publish_post نیز پس از انتشار یک پست جدید روی می‌دهد زمانی که کال بک اجرا شود، کد نوشته شده داخل آن به یک ایمیلی اطلاع می‌دهد که یک پست جدیدی مننتشر شد.


مثال 2:


مثال 3:


مثال 4:

کانال تلگرام فول کده
تبلیغات

درباره نویسنده

هادی اکبرزاده

[ مدیر فول کده ]

علاقه‌مند به اشتراک‌گذاری اطلاعات در هر زمینه‌ای
برنامه‌نویس فول استک

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نظرات ثبت شده بدون دیدگاه