آموزش ساخت افزونه وردپرس فارسی

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

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

اما قابلیت های وردپرس، به همین جا محدود نمی شود. شما می توانید خودتان به طراحی افزونه بپردازید!

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

فلسفه وردپرس

وردپرس خود متشکل از مجموعه نسبتاً کوچکی از ویژگی‌ها است که در مجموع به آنها «هسته» پلتفرم گفته می‌شود. افزونه‌ها قابل دانلود هستند و حاوی فایل‌ها و کدهایی هستند که عملکرد هسته را گسترش یا تغییر می‌دهند. در واقع، فلسفه وردپرس بیان می کند که اگر یک ویژگی احتمالاً توسط حداقل ۸۰٪ از همه کاربران استفاده می شود، باید در هسته گنجانده شود. در غیر این صورت باید افزونه باشد.

به همین دلیل، وسعت امکانات ارائه شده توسط افزونه ها بسیار زیاد است. می‌توانید از آنها برای افزودن فرم‌های انتخابی یا پنجره‌های بازشو استفاده کنید. آنها می توانند بسیار ساده باشند، مانند Hello Dolly که اگر آن را فعال کنید قسمتی از متن ترانه Hello Dolly را در پیشخوان وردپرس نشان می دهد. یا می توانند بسیار گسترده باشند، مانند افزونه Jetpack که ده ها تنظیمات و ویژگی جدید را به سایت شما اضافه می کند.

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

وردپرس ابزاری برای توسعه دهندگان نوپا

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

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

تفاوت بین افزونه ها و تم ها

ابتدا، در مورد تفاوت بین تم ها و افزونه ها صحبت می کنیم. در ظاهر، این ممکن است یک تمایز آشکار به نظر برسد. مطمئناً یک تم فقط ظاهر سایت شما را تغییر می دهد، در حالی که یک افزونه عملکردی را اضافه می کند؟ حقیقت کمی مبهم تر از آن است.

در واقع، یک تم هم می‌تواند عملکرد یک سایت را تغییر دهد، در حالی که یک افزونه نیز می‌تواند تغییراتی در ظاهر آن ایجاد کند. همه تم های وردپرس حاوی یک فایل functions.php هستند که شامل کدهایی است که قابلیت هایی را به سایت شما اضافه می کند. این کار بسیار شبیه به کاری است که یک افزونه انجام می دهد. در واقع، شما می توانید همان کد را به یک افزونه یا functions.php اضافه کنید و در سایت شما به همان صورت عمل خواهد کرد.

تفاوت در این است که در تم ها وقتی کدی را به functions.php اضافه می کنید، به تم فعلی شما پیوند داده می شود. اگر می‌خواهید برخی از قابلیت‌های تم خود را تغییر دهید، یا می‌خواهید به سرعت یک تابع را بدون نیاز به نوشتن یک افزونه کامل اضافه کنید، می‌تواند مفید باشد. همچنین اگر در حال ایجاد یک تم هستید و می خواهید توابع سفارشی را وارد کنید، می توانید از این روش استفاده کنید.

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

افزونه ها چگونه کار می کنند: مقدمه ای بر Hooks ،Actions و Filters

قبلاً اشاره کرده‌ایم که افزونه‌ها به معنای واقعی کلمه به هسته وردپرس متصل می‌شوند. این کار با استفاده از « Hooks » انجام می‌شود که یک کد را قادر می‌سازد تا با دیگری تعامل داشته باشد. به این ترتیب، Hooks تعیین می کنند که واقعاً چه زمانی و در کجا در سایت شما از یک افزونه استفاده می شود.

برای مثال، فرض کنید افزونه ای دارید که پیام خطایی را تغییر می دهد که زمانی که شخصی سعی می کند با رمز عبور اشتباه وارد سایت شما شود ظاهر می شود. در این سناریو، پیام خطا hook است. یک افزونه می تواند به کدی که آن پیام را نمایش می دهد متصل شود و متن نمایش داده شده را تغییر دهد.

دو نوع Hook وجود دارد که وردپرس آن ها را می فهمد:

  • Actions: برای افزودن یا تغییر عملکرد وردپرس استفاده می شود.
  • Filters: از این فیلترها برای تغییر عملکرد Actions استفاده می شود.

همانطور که احتمالاً می توانید حدس بزنید، چیزهای بیشتری در مورد نحوه عملکرد Hooks وجود دارد. با این حال، این باید به شما یک ایده تقریبی از تفاوت این دو را بدهد. در حال حاضر، این تنها چیزی است که باید بدانید، اما توصیه می کنیم همه انواع Hooks را در کتابچه راهنمای برنامه نویس افزونه مطالعه کنید.

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

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

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

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

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

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

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

آموزش ساخت افزونه وردپرس

امروز مدیران سایت‌ها دیگر، با افزونه کاملاً در ارتباط هستند و می‌دانند که افزونه چیست و هر افزونه چه کاربردی دارد. این بار ما می‌خواهیم با دوستان یک افزونه اختصاصی برای سایت خودمان بنویسیم و برای کاربرانی که دوست دارند افزونه بنویسند هم قرار دهیم.

ما در میهن وردپرس در بیشتر اوقات کدها و متغیرهایی را به شما عزیزان آموزش می‌دادیم که باید متغیر و کدهای آن را در functions.php قالب کپی کند و تا فعال شود و در ضمن افزونه‌ها جدا از قالب‌ها فعالیت می‌کنند.

همان‌گونه که اطلاع دارید تاکنون هر زمان بحث از کد نویسی بود و یا می‌خوهستیم از طریق کد نویسی تغییری ایجاد کنیم، معمولاً به شما می‌گفتیم این تغییر را از طریق ایجاد تغییرات در فایل functions.php قالب اعمال می‌کنیم.

اما در این بخش چون بحث از نوشتن افزونه است و افزونه‌ها فایل‌های PHP مخصوص به خود دارند، این تغییرات را نباید در فایل functions.php ایجاد کنید چراکه اگر زمانی بخواهید قالب سایت را تغییر دهید و یا حذف کنید، تغییرات شما همراه با حذف و تغییر قالب از بین خواهد رفت. درنتیجه بهتر است که تغییرات PHP افزونه را در فایل‌های PHP خود افزونه انجام دهید.

پس بهتر است که افزونه‌ای بسازیم که تا همه کد‌ها را به‌‌جای functions.php معرفی کند و  در صورت تغییر دادن قالب وردپرس دیگر نگران تغییر کد‌های قالب سایتمان نباشیم.

شروع طراحی پلاگین وردپرس

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

<?php
/*
Plugin Name: نام افزونه شما مثلا افزونه کاربران میهن وردپرس
Description: توضیحاتی در مورد افزونه
*/

(در این قسمت کد هایی که دوست دارید باشند را کپی کنید. هر کد وردپرسی که دوست دارید.)

?>

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