چند نکته مفید برای استفاده از هوک ها

تاریخ : ۲۷ دی ۱۳۹۴ | دسته بندی : مقالات,وردپرس | برچسب ها : ,,,

با اینکه هوک های وردپرس بسیار جذاب هستند و همه به طور آگاهانه یا ناآگاهانه از آن ها استفاده می کنند ، من گمان می کنم که هنوز برخی از کاربران پیسرفته و حتی توسعه دهندگان نهایی از آن ها دوری می کنند  .اگر شما هم گمان می کنید که برای استفاده از هوک ها تردید دارید ، این مقاله کمک زیادی به شما خواهد کرد . من هم می خواهم برای تمام کسانی که فکر می کنند به قدر کافی با هوک ها آشنایی دارند ، جزئیات جالبی را در باره آن ها بگویم .

اگر می خواهید یک یا همه کارهای زیر را انجام بدهید ، این مقاله را بخوانید :

  • با کد اسنیپت ها همراه با هوک ها از قبیل آن هایی که در فروم ها یافت می شوند ، آشنا شوید
  • وردپرس ، افزونه ها و تم ها را بدون قطع کردن به روزرسانی توسعه دهید
  • راه های جلوگیری از ایجاد مشکلات رایج را بیاموزید
  • به کاربران اجازه دهید تا کدهایتان را توسعه دهند .

من مثال های خودم را از هسته وردپرس و کار خود به عنوان یک توسعه دهنده فریلنسرو نویسنده افزونه Advanced Ads گرفته ام .

 

 

Hooks in WordPress

هوک ها در وردپرس مفیدند و به طورگسترده ای از آن ها استفاده می شود ، اما نه به سادگی . ولی می توانید افزونه ها و تم ها ر بدون قطع کردن آن ها توسعه دهید و از مشکلات نگهداری در طول مسیرتان اجتناب کنید .

هوک ها چه هستند ؟

هرگاه می خواهید در وردپرس کاری را انجام دهید یا چیزی را توسعه دهید ، به احتمال فراوان از هوک ها استفاده می کنید .

هوک “do” یک “action” نام دارد . هرگاه یک action تعریف می شود ، شما می توانید کد خود را اجرا کنید. در اینجا چند مثال آورده ایم :

  • ارسال ایمیل برای نویسنده در زمان انتشار یک پست
  • بارگذاری یک فایل اسکریپت سفارشی در فوتر صفحه
  • افزودن راهنمایی به بالای صفحه ورود

مهم ترین چیز برای هوک های action محل قرارگیری آن است . این هوک ها در سراسر هسته وردپرس وجود دارند و امکان انجام کارهایتان را برای شما فراهم می کنند .

هوک ” customize” یک ” فیلتر” نامیده می شود . فیلتر امکان تغییر یا سفارشی سازی یک مقدار و بازگردانی آن در یک شکل تازه را به شما می دهد . در اینجا چند نمونه را آورده ام :

  • تبدیل اولین حرف عنوان پست به حروف بزرگ
  • پیوست کردن لینک ها به پست های مرتبط پس از محتوای اصلی
  • تغییر یک گزینه که از پایگاه داده ها بازگردانی می شود .

برای یک فیلتر ، نه تنها موقعیت آن ، بلکه مقدارهای داده شده و برگشت خورده هم اهمیت دارند . در خصوص actionها ، می توانید فرض کنید که وردپرس به طور تقریبی برای هر مقداری که پردازش می کند ، یک فیلتر دارد .

عناصر یک هوک روتین

هوک به تنهایی یک موقعیت است . برای به کار انداختن آن ، حداقل باید سه تابع مقدماتی داشته باشید که در ترکیب با هم ، من آن ها را یک ” هوک روتین ” می نامم .

حال بیایید به عنوان یک مثال هوک wp_head را برای action ها و the_content را برای فیلتر ها استفاده کنیم .

هوک(اسم)

خود هوک زمان و مکانی است که اتفاق جادویی رخ می دهد . این را مانند قلابی فرض کنید که کوهنورد باید به بدنه کوه فرو کند . این یک موقعیت خاص دارد و اگر آن ها یا سایر کوهنوردان بخواهند به جلو حرکت کنند ، می توانند از آن استفاده کنند .

هوک های action مانند زیر با do_action() جایگذاری می شوند :

هوک های فیلتر از apply_filters() به شکل زیر استفاده می کنند :

همان طور که می بینید ، باید خروجی فیلتر را هم بگیریم .

Action و فیلتر

عنصر بعدی در یک هوک روتین ، action یا فیلتر است . این حداقل یک تابع است که می توانید برای انجام دادن یا فیلتر کردن چیزی آن را تعریف کنید . این می تواند کوهنورد واقعی است که برای ذره ای بالاتر رفتن حاضر است از هر قلابی استفاده کند .

یکی از action هایی  که درwp_head راه اندازی می شود ، noindex() است .

این action به سادگی بررسی می کند که آیا شما تنظیمات مربوط به قابلیت رویت موتور جستجو را غیرفعال کرده اید یا خیر . در صورت ، wp_no_robots() متا تگ ربات ها را اضافه می کند که به موتورهای جستجو می گوید وب سایت شما را ایندکس نکند .

wpautop() نمونه ای از یک فیلتر در the_content . این فیلتر مسئول در لفافه گذاشتن پاراگراف های شما در تگ های <p> و استفاده از <br /> برای شکستن لینک هاست . قسمت مهم افزونه این است :

تابع فیلتر به جز یه action حداقل به یک آرگومان هم نیاز دارد . این آرگومان قرار است دوباره بازگردانی شود .

هوک (فعل)

درحالی که یک کوهنورد در دنیای واقعی می داند که با قلاب چه کاری می تواند انجام دهد ، در یک هوک روتین وردپرس ما باید به آن ها بگوییم که این هوک خاص برای آن هاست تا از آن استفاده کنند .

این کار با یک تابع که به اشتباه ” هوک ” (اسم) نامیده می شود ، انجام می گیرد . زمانی که من یک هوک روتین را توضیج می دهم ، منظورم هوک به صورت فعل است ، اما اگر بخواهم آن را به صورت اسم به کارگیرم ، آن را یک ” ارتباط ” می خوانم .

برای هوک wp_head و دستور noindex() ارتباط با این خط برقرار می شود :

پارامتر سوم یک اولویت است ، که در پایین شرح می دهیم .

هوک کردن wpautop() در the_content با این خط انجام می شود :

این ها مقدمات یک هوک روتین هستند . در بخش های بعدی مقدار بیشتری از آن ها را توضیح می دهیم .

شما در حال حاضر از این هوک ها استفاده می کنید

Action ها و فیلتر در عمق هسته پنهان هستند ، اما ما فقط می خواهید تم خود را تغییر بدهید ، پس بنابراین چرا خودتان را با آن ها به دردسر می اندازید ؟

حقیقت این است که اگر فقط تم ها را ” کدگذاری ” کنید یابه طور موقت در functions.php تم خود چیزی بگذارید ، به طور احتمال در حال استفاده از action ها و فیلتر ها هستید .

WP_HEAD

حال بیایید به بخش head تم Twenty Fifteen نگاهی بیندازیم که می توان آن را در

wp-content/themes/twentyfifteen/header.php یافت .

در واقع بین تگ های <head> شروع و پایان چیز زیادی وجود ندارد ، بنابراین نگاهی به سورس کد در مرورگرتان بیندازید . همه نوع عناصر متا از جمله یک تگ <title> را در آن خواهید دید .

عنصرهایی که ممکن است متوجه شوید در فایل header.php حذف شده اند ، با تابع wp_head() اضافه می شوند . اگر IDE تان (یعنی نرم افزاری که با آن کدنویسی می کنید) باز باشد ، و به شما این امکان را بدهد که به سرعت به سراغ تعریف یک تابع بروید ، واقعا باید از آن استفاده کنید و محتویات wp_head() را بررسی کنید .

اگر قصد حذف کردن نظریات را داشتید ، خواهید دید تنها کاری که wp_head() انجام می دهد ، جایگذاری هوک wp_head است . به ویژه ، این بدان معنی است که تم شما به جای wp_head(); می تواند از do_action( ‘wp_head’ ); هم استفاده کند .

تا اینجا هسته به درستی از هوک استفاده کرده است . در اینجا چند ارتباط را آورده ایم که وردپرس به طور پیش فرض تعریف می کند :

در میان آن ها ، دستور noindex() و نیز (از زمان وردپرس ¼ به بعد ) فراخوانی به ر وجود دارند که تگ title را تولید می کند .

THE_CONTENT

نمونه ای از یک هوک فیلتر که بدون شناخت شان آن ها راچندین بار استفاده کرده اید ، the_content است .

آن در پس تابع the_content() پنهان است که برای بیرون دادن محتواهای یک صفحه یا پست به کار می روند و فراخوانی به هوک the_content را هم در بر دارد

هنگام فراخوانی  the_content() در یک نصب پاک وردپرس ، تا اینجای کار چند فیلتر به the_content هوک خورده اند .

فیلترهای پیش فرض از فرمت و چند علامت ویژه در متن تان مراقبت می کنند . افزونه های فراوانی نیز از آن برای ضمیمه کردن عناصری مانند آیکون های به اشتراک گذاری اجتماعی یا پست های مرتبط به انتهای محتوای اصلی یک پست به طور گسترده ای استفاده می کنند .

 

و در ادامه بخش دوم را مطالعه فرمائید : چند نکته مفید در مورد هوک های وردپرس

 

حسن موحد

عاشق طراحی وب سایت هستم و 8 سال هست در این زمینه فعالیت می کنم و تمرکزم بر روی خرسند نگه داشتن مشتری است .

ارسال نظر