من یک وردپرس کار هستم. زمانی که می خواستم «نحوه ی استفاده از هوک ها در وردپرس» را یاد بگیرم (اون اوایل!)، خیلی دنبال یک آموزش مناسب گشتم اما خیلی زود ناامید شدم. زیرا هیچ مقاله یا آموزش خوبی که بتواند اکشن و فیلتر و هوک در وردپرس را برای من توضیح دهد وجود نداشت. در حقیقت مقالات زیادی بودند که این مسائل را توضیح می دادند اما بسیار پیچیده نوشته شده بودند. این مقالات فقط برای برنامه نویسی ها و توسعه دهندگان حرفه ای قابل فهم بود. مثلا اینطور آموزش را شروع کرده بودند:
"اکشن ها و فیلترها این امکان را برای شما فراهم می آورند تا بتوانید فانکشنلیتی خاصی را به سایت اضافه کنید و یا رفتار سایت را با استفاده از هوک ها و با بازفراخوانی یک فانکشن به یک تگ خاص در کدهای هسته تغییر دهید!"
وای! واقعا فهمیدن چنین جملاتی مشکل و دشوار بود. اما شما نگران نباشید. ما قرار نیست همه چیز را پیچیده کنیم. در ادامه با ما همراه باشید تا این مطالب را به شکلی آسان و روان توضیح دهیم.
هر برگه ی وردپرس از فانکشن ها (functions) و کوئری های (database queries) زیادی تشکیل شده است که با قالب وردپرس همکاری می کنند و با هم خروجی سایت را نمایش می دهند. خروجی هایی مثل متن ها، عکس ها، استایل ها و غیره. مرورگر، همه ی این چیزهای عجیب و غریب را (فانکشن ها و کوئری ها و متن ها و کدها و...) کنار هم می گذارد و نتیجه را در قالب یک برگه از سایت، به ما نمایش می دهد.
در طول کدهای وردپرس هوک هایی (hook) وجود دارند. hook در لغت به معنای قلاب یا چنگک است. به این خاطر اینگونه نامگذاری شده است که کدنویسان کدهایشان را به این هوک ها اصطلاحا آویزان (hang) می کنند. یعنی کدها به یک چنگک (که hook باشد) آویزان یا وابسته می شوند. (در ادامه بهتر متوجه خواهید شد)
دو نوع هوک وجود دارند: اکشن ها (Actions) و فیلترها (Filters).
اکشن ها چیزی را انجام می دهند، و فیلترها چیزی را تغییر می دهند!
«وقتی گیل (Gill) از راه رسید، به او بگویید که برای تهیه نقاشی به فروشگاه برود. وقتی جک رسید و از خودش تعریف و تمجید کرد، رویش را کم کنید».
آن بخش از جمله ی بالا که میگوید «وقتی گیل (Gill) از راه رسید، به او بگویید که برای تهیه نقاشی به فروشگاه برود.» را در نظر بگیرید.
ما می توانیم کار بالا را با استفاده از هوک ها و اکشن ها انجام دهیم. با چه فانکشنی؟ با فانکشن add_action. با چه هوکی؟ آن را تعریف می کنیم (هوک: بعد از رسیدن گیل). در حقیقت هوک نشان دهنده ی زمان انجام اکشن می باشد. (به خاطر دارید که اکشن کاری را انجام می داد)
اگر بخواهیم جمله ی بالا را در قالب کدهای php بنویسیم، چیزی شبیه به کد زیر خواهد شد:
// فرستادن گیل برای تهیه ی نقاشی add_action( 'after_gill_arrives' , 'send_gill_to_get_paint', 10 , 2 ); function send_gill_to_get_paint( $gill_has_keys, $gill_has_car ) { // آنگاه اگر گیل هم کلید داشت و هم ماشین داشت if ( $gill_has_keys && $gill_has_car ) { echo 'گیل لطفا برو نقاشی بخر و بیاور.دستت درد نکنه!'; } }<br>
در کد بالا انتظار دارم بتوانید کلمات انگلیسی کد را ترجمه کنید. ولی به هر حال معنای هر یک را می نویسم:
در کد بالا چه کار کردیم:
send_gill_to_get_paint
را اضافه کردیم تا در شرایطی خاص، متنی را برای ما به نمایش بگذارد.به زبان ساده، add_action به وردپرس می گوید «زمانی که به هوک مربوطه رسیدی (do_action() hook) کاری را انجام بده».
پس در مثال بالا فقط زمانی می توانیم از add_action استفاده کنیم که اکشنهوک after_gill_arrives در پوسته یا افزونه وجود داشته باشد. افزونه یا پوسته ی ما باید یک چنین چیزی را درون خود داشته باشد:
do_action( ‘after_gill_arrives’ , $gill_has_keys = true , $gill_has_car = true );
کد بالا به وردپرس می گوید که یک هوک با نام after_gill_arrives ایجاد کند. این هوک همه ی اکشن هایی که به آن متصل باشند را فراخوانی و اجرا خواهد کرد. همچنین آرگومان هایی را پاس میدهد که در اینجا gill_has_keys$ و gill_has_car$ هستند.
در مثال زیر می خواهیم مقداری نوشته یا متن را بعد از هدر بنویسیم.
// Add some text after the header add_action( '__after_header' , 'add_promotional_text' ); function add_promotional_text() { // If we're not on the home page, do nothing if ( !is_front_page() ) return; // Echo the html echo "<div>Special offer! June only: Free chocolate for everyone!</div>"; }<br>
در کد بالا فرض بر آن است که ما در درون کدهای اصلی پوسته ی خود، کد زیر را از قبل تعریف کرده ایم:
do_action ( '__after_header' )
after_header یا «بعد از هدر»، همان جایی است که add_action در کد بالا خود را هوک کرده است.
شما همچنین می توانید از remove_action برای حذف اکشن ها از هوک ها استفاده کنید. اما چگونه remove_action را باید به کدهای خود بیفزاییم؟ بله درسته! دوباره با استفاده از add_action.
به پایان قسمت اول رسیدیم. در قسمت بعد راجع به فیلتر هوک در وردپرس صحبت خواهیم کرد و کمی بیشتر از هوک در وردپرس و کاربرد آن ها خواهیم گفت. در قسمت بعدی آموزش را به پایان خواهیم برد. با ما همراه باشید.
منبع: سایت Press Customizr Documenta
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.