طراحی قالب وردپرس با آرتاباز

بیش از 0 پروژه طراحی وب سایت و 0٪ رضایت مشتریان فقط کافیست نمونه کارها را مشاهده کنید.

آموزش ساخت پلاگین وردپرس قسمت دوم (Hooks)

.

آموزش مبحث Hook و اکشن در وردپرس

در قسمت قبلی (از اینجا میتونید ببینیدش) کلیاتی رو خدمت تون عنوان کردیم و حالا میخوایم کار رو گسترش بدیم 🙂

اساس کار پلاگین ها بر پایه مفهومی به نام Hook هست. حالا این هوک چی هست؟

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

پلاگین وردپرس هوک Hook اکشن ها آموزش ساخت فیلتر.

مثلا ما توسط Hook ها می تونیم زمان دقیق لاگین شدن کاربر رو بفهمیم و بیایم پس از لاگین شدنش یک کار خاصی انجام بدیم. مثلا ایمیل بهش بزنیم.

یا مثلا بیایم تعریف کنیم، هرگاه پستی نمایش داده شد، به انتها پست، اطلاعات نویسنده رو درج کن یا مثلا به ابتدای پست یک جعبه پیام یا هشدار اضافه کن که قرمز رنگ هم باشه!یا مثلا بگیم هر موقع میخواستی عنوان پست رو در مرورگر نمایش بدی، اگر توش لغت Artabaz بود، اونو تبدیل کن به آرتاباز و سپس نمایشش بده…

وردپرس پر از Hook هست و شما به عنوان توسعه دهنده می بایست دائما هوک ها رو مرور کنین. یک پست کاربردی اخیرا با همین مضمون براتون نوشتیم که در آینده نزدیک بدردتون میخوره پس همین الان بوک مارک اش کنین 🙂

اینو میگم: لیست هوک ها به صورت آفلاین

یک لیست آنلاین هم در سایت وردپرس هست : http://codex.wordpress.org/Plugin_API

و اما بعد…

تا اینجا که فکر نکنم مشکلی داشته باشین. اگه داشتین سوال کنین!

ما در وردپرس، دو نوع Hook داریم. یکیش اسمش Action هست و یکی دیگه هم Filter

لیست فیلترها اینجاست : http://codex.wordpress.org/Plugin_API/Action_Reference

لیست اکشن ها هم اینجاست : http://codex.wordpress.org/Plugin_API/Filter_Reference

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

ساده است نه؟ فقط دقت کنین که فیلتر یک ورودی داره و یک خروجی. فیلتر بدون ورودی خروجی معنا نداره!

با این مقدمه میریم سراغ توضیح اکشن و فیلتر.

بازهم تاکید میکنم، هوک یک مفهوم بود. اکشن و فیلتر هرکدومشون هوک محسوب میشن. اوکی؟ 🙂

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

با مثال براتون توضیح میدم، فرض کنید میخوایم هر موقع کاربری لاگین کرد، به ادمین ایمیل بره. این یک رویداد هست درسته؟ رویداد چی هست؟ رویداد لاگین شدن کاربر. ورودی داره این رویداد؟ خیر! صرفا میگه یکی وارد شد و هوک وارد شدن کاربر فعال میشه. حالا اگه ما به اونجا قلاب انداخته باشیم، زمانیکه کاربر لاگین میکنه، وردپرس بلندگو رو بر میداره میگه آی یکی لاگین شد. ما هم سریعا میپریم و به ادمین ایمیل میزنیم. به این میگن اکشن. ما یک اکشن انجام دادیم! دیدیم یکی لاگین رفته (لغت رفته مخصوص مشهدی هاست 🙂  شما بخونین لاگین شده) و بعد اکشنی انجام دادیم و پریدیم به ادمین سریع ایمیل زدیم، اوکی؟

حالا فرض کنین همین کاربر داره رجیستر میکنه، اینبار ما میایم به یک رویدادی هوک میندازیم که یکمی ماهیتش فرق میکنه. مثلا میگیم اگر در ایمیلی که کاربر میخواد باهاش عضو بشه، لغت gmaail هست، اون رو تبدیل کن به gmail (به غلط املایی توجه کنین). اینجا داریم چیکار میکنیم؟ آفرین داریم فیلتر میکنیم 🙂 البته جنس این فیلتر با جنس فیلتر سایت های ایرانی فرق داره 🙂

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

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

===================

یک مثال دیگه:

دیدین توی قالب ها در قسمت هدر از wp_head() استفاده میکنن؟ این یک هوک هست. اگه اینو تو قالب نذارین، خیلی از پلاگین ها کار نمیکنن. جنسش بنظرتون چی هست؟ اکشن یا فیلتر؟

اینو توی نظرات بگید. اگر دیدم یاد گرفتید میریم مرحله بعدی 🙂

لبخند فراموش نشه. شاد باشید و زندگی کنید!

—————————–

تفاوت اکشن و فیلتر

آموزش اکشن نویسی وردپرس

فیلترها در وردپرس چگونه کار میکنند؟

قلاب اندازی و استفاده از هوک ها Hook ها در وردپرس، سیستم اکشن و Filter در WordPress

اگر این مطلب را مفید ارزیابی کردید لطفا به اشتراک بگذارید .

۲۵ دیدگاه

  1. بازتاب: نحوه نوشتن پلاگین وردپرس

  2. ali

    بلاخره منتشر شد! اگه زود به زود ادامه این آموزش منتشر بشه ممنون میشم.

    • webelizer

      چشم سعی مون رو میکنیم.
      یاعلی

  3. وحید

    مرسی چیزایی یاد گرفتیم و دعاتون کردیم بیشتر بزارید تا بیشتر دعاتون کنیم خداوند خیر و برکتتون رو زیاد کند
    ضمنا اگه اون هوک یه اکشن هست دیگه ورودی که نداره داره ؟

    • webelizer

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

  4. hasan

    سلام و خسته نباشید مرسی عالی بود
    فقط خواستم بدونم اامه نداره ؟

    • webelizer

      سلام
      چرا انشاءالله ادامه داره…

  5. مهدی

    دستت درد نکنه

  6. ایمان

    wp_head() اکشن هست 🙂

    • webelizer

      چه عجب! بالاخره یک نفر پاسخ داد 🙂
      بله اکشن هست. پس میریم سراغ قسمت های بعدی…

  7. mahdi

    پس قسمت های بعدی چی شد/

  8. win

    قسمت بعدی چی شد؟

  9. سید داوود فامرینی

    سلام
    عالی پسر عالیه چقدر روون و با زبون خوب توضیح می دی دمت گرم 🙂
    موفق و پیروز باشی

    • webelizer

      نظر لطفتون هست سید.

  10. مسعود

    با سلام
    از راهنما و آموزش شما سپاسگزارم
    با تجه به آموزش های فوق فکر کنم wp_head() یک اکشن است
    با تشکر

    • webelizer

      بله، آفرین، حالا میتونین قسمت سوم رو دنبال بکنین.

  11. امیرحسین

    سلام بابت این مطالب تشکرمیکنم
    یک سوال داشتم اگر یک افزونه رو نصب کنیم و در موقع نصب ارور بده که در خط مثلا22 مشکل هست این به چه دلیلی هست . آیا مربوط به عدم برنامه نویسی درسته یا دلیل دیگه ای داره . و چه طور میشه این عیب ها رو درست کرد.

    • webelizer

      سلام
      گاهی اوقات مشکل از کد شماست و گاهی اوقات هم تداخل ممکنه بین پلاگین ها بوجود بیاد.
      باید ببینید خطا چی هست تا متوجه بشید که مشکل دقیقا از کجاست.

  12. فومن ویلا

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

  13. عابر پیاده

    آقا خیلی عالی …
    من برنامه نویس PHP هستم و مدتهاست که از میون همه مدیریت محتواها جوملا رو برای کار انتخاب کردم چون به نظرم مدیریتش شسته رفته تره و کاربر نهایی راحت تر می تونه باهاش کار کنه. کامپوننت و ماژول و امثالهم هم برای جوملا نوشتم و در بعضی موارد از PHP ساده برای کارهام استفاده کردم.
    تازگی بر حسب کنجکاوی و آماری رو به افزایش وردپرس شروع کردم به یادگیری افزونه نویسی در وردپرس. سایت شما هم یکی از اولین جاهایی است که اومدم، خیلی عالی گفتی. برای اونایی که این نظر رو می خونند می گم که وقتی یکی اینطوری توضیح میده یعنی سوار بر کاره و خودش مطلب رو درک کرده نه مثل بعضی سایتها که یا ترجمه نسخه های خارجی هستند و یا از روی یک کتاب کپی کردن و فقط باعث سردرگمی کاربر می شن.
    خلاصه اش اینکه دمت گرم و سر خوش باد که خیلی زیبا نوشته بودی خصوصا فیلم قسمت سوم واقعا خوب بود. اگر ممکن بود برات و وقت داشتی یه توضیحی هم در مورد کار با API ها در وردپرس ( چه گرفتن اطلاعات از API و چه ایجاد خروجی API ) بذار . با زبان شما خوش مزه تره آدم گوش بده 🙂

  14. علی

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

    باتشکر از سایت خوبتون

  15. محمدی

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

  16. محسن فخریان

    سلام همشهری عزیز 🙂
    آقا خیلی خوب توضیح میدی احسنت
    من به کمک نیاز دارم برای سایتم چجوری میتونم در ارتباط باشم با شما عزیز؟

ارسال نظر

» دیدگاه تان را فارسی بنویسید ، دیدگاه های انگلیسی و فینگلیش تایید نمی شوند .