آموزش آسان ساخت افزونه وردپرس فارسی
افزونه یا پلاگین چیست؟
افزونه (plugin) یک نرمافزار یا بخشی از نرمافزار است که قادر است امکانات جدیدی را به وبسایت شما اضافه کند. به کمک افزونهها میتوان وبسایت را گسترش داد و ویژگیهای متعددی به آن اضافه کرد. بسیاری از خدماتی که شما به آنها نیاز دارید توسط افزونهها قابل راهاندازی هستند.
برای مثال: ایجاد فرم ارسال ایمیل، سیستم آزمون آنلاین، سیستم ثبت سفارش، سیستم تعیین قیمت و… نمونههایی از افزونههای وردپرسی هستند. هر افزونهی وردپرسی میتواند برای یک یا چندین هدف مختلف ساخته شود.
وردپرس یک سیستم مدیریت محتوای قدرتمند است که از پلاگینهای متعددی پشتیبانی میکند. تاکنون هزاران پلاگین رایگان و تجاری برای وردپرس طراحی شده است. از طریق این لینک میتوانید لیستی از پلاگینهای وردپرس را مشاهده کنید.
اما مشکلی که بیشتر اوقات با آن مواجه هستیم عدم پشتیبانی این پلاگینها از زبان فارسی است. به همین دلیل مدیران وبسایتها برای افزودن ویژگیهای مد نظر خود در وبسایت به سراغ ساخت افزونه وردپرس به صورت اختصاصی میروند تا افزونهای با امکانات و طراحی مد نظر خود داشته باشند که برای کاربران فارسی زبان نیز مناسب باشد.
چه زمانی سفارش طراحی افزونه وردپرس لازم است؟
بسیاری از خدمات رایجی که شما در وبسایتتان به آنها نیاز دارید از قبل توسط توسعهدهندگانی از سراسر جهان ایجاد شده است که میتوانید از آنها استفاده کنید. اما اگر شما با یکی از موارد زیر مواجه هستید باید به فکر طراحی افزونه وردپرس اختصاصی باشید.
- افزونهای با اهداف مدنظر شما وجود ندارد.
- افزونههای موجود با طرح دلخواه شما منطبق نیستند.
- افزونههای موجود از زبان فارسی پشتیبانی نمیکنند.
- افزونهای میخواهید که کاملاً اختصاصی باشد و سایرین از آن استفاده نکنند.
چگونه یک پلاگین وردپرس کار میکند
پس از قرار دادن یک پلاگین وردپرس در پوشه”wp-content/plugins /” ، این پلاگین باید به طور خودکار برای نصب در دسترس باشد.
هنگامی که یک پلاگین “فعال” می شود، به وردپرس می گوید که کمی از کد شما را بر روی “هر” صفحه بارگذاری کند(از جمله صفحه ادمین). به این دلیل است که اگر تعداد زیادی پلاگین های فعال شده داشته باشید، به علت بالا بودن تعداد کد ها، نصب وردپرس شما ممکن است بسیار آهسته باشد.
از آنجا که وردپرس، زمانی که پلاگین فعال می شود به طور خودکار کدهای شما را بارگذاری می کند، می توانید از این فرصت با ضربه زدن به Application Program Interface (API) پلاگین وردپرس، استفاده کنید. شما همچنین می توانید به تگ های قالب وردپرس دسترسی پیدا کرده و یا یکی مخضوض به خودتان ایجاد نمایید.
حلقه ی وردپرس، حلقه ای است که پست های شما را نمایش می دهد. برخی از تگ های قالب در خارج از این حلقه کار خواهند کرد، بنابراین ضروری است که بدانید کد شما دقیقا کجا در حال اجرا است. شما می توانید این کار را با استفاده از اکشن ها و فیلترها کنترل کنید.
افزونه اختصاصی برای سایت وردپرسی
تو این آموزش قصد دارم با یه روش خیلی ساده بهتون یاد بدم یه افزونه اختصاصی برای سایت وردپرسی خودتون بسیازید و دیگه نگران تعویض قالب سایت و یا حتی نگران خرابی فایل functions خودتون نباشین.
اما افزونه اختصاصی چیه و چیکار میکنه؟
وقتی اسم افزونه به میان میآد یعنی یه سری کد که به صورت مجزا از قالب و پوسته وردپرس اجرا میشن. کار افزونه اختصاصی که ما میخوایم ایجاد کنیم این هست که می آیم و کدهای که به فایل functions.php اضافه میکنیم رو در این افزونه کنار هم میچینیم و اونهارو از قالب به صورت مجزا اجرا میکنیم.
حالا بریم سراغ ساخت افزونه برای سایت خودمون:
در اولین گام یک پوشه با هر عنوانی که دوست دارین ایجاد کنید. بعدش یک فایل با پسوند .php و هم نام پوشه ای که ساخته بودین رو ایجاد کنید. (میتونید یه فایل ساده متنی یا همون .txt بسازین و پسوندش رو به PHP تغییر بدین)
حالا این کدهارو داخل اون کپی کنید.
<?php
/*
Plugin Name: Site Plugin for example.com
Description: Site specific code changes for example.com
*/
/* Start Adding Functions Below this Line */
Insert Code OF Functions.php
/* Stop Adding Functions Below this Line */
?>
الان بجای عبارت قرار گرفته مقابل Plugin Name یک عنوان و به جای عبارت قرار گرفته در قسمت Description هم چند کلمه توضیح برای افزنه اختصاصی خودتون بنوسید و آخر کدهایی از فایل functions.php که میخواین به صورن مستقل اجرا بشن رو در به جای Insert Code OF Functions.php درج و فایل رو سیو کنید و این پوشه رو به پوشه مربوط به پلاگینهای وردپرس خودتون کپی کنید.
به همین راحتی تونستین یه افزونه اختصاصی برای خودتون درست کنید.
نکته ای که قبل از طراحی باید بدانید
فعال نمودن حالت Debug
اولین کاری که باید به عنوان یک برنامه نویس حرفه ای وردپرس قبل از شروع به ساخت افزونه وردپرس انجام دهید فعال نمودن حالت Debug یا اشکال زدایی وردپرس است ٬ زیرا با انجام دادن این کار اگر در روند کدنویسی شما ارور یا ایرادی وجود داشته باشد شما متوجه میشوید و سریعا آن ایراد را برطرف مینمایید ٬ برای فعال نمودن حالت اشکال زدایی وردپرس کافیست فایل wp-config.php را باز نموده و ثابت WP_DEBUG را TRUE نمایید ٬همانند کد زیر :
define(‘WP_DEBUG’, true);
عدم وابستگی و تداخل در کدهای افزونه
زمانی که شما شروع به ساخت یک افزونه وردپرس مینمایید حتما باید به این نکته توجه نمایید که افزونه وردپرس شما نباید هیچ گونه تداخلی با افزونه ها و پوسته های دیگر وردپرس داشته باشد ٬ به فرض مثال شما شروع مینمایید به ساخت افزونه ای که داخل آن از تاریخ شمسی استفاده شده است و در کنار آن افزونه پارسی دیت را که کارش شمسی سازی وردپرس میباشد را نصب مینمایید و در همین حین تداخلی بین کدهای افزونه شما با کدهای افزونه پارسی دیت ایجاد میشود که باعث میشود در کارکرد سایت وردپرسی شما خللی ایجاد گردد ٬ یا مثال دیگر برای همین افزونه این باشد که شما افزونه وردپرسی مینویسید که داخل آن ازتوابع افزونه پارسی دیت استفاده شده است ٬ حالا اگر افزونه شما در سایت دیگری نصب گردد و آن سایت افزونه پارسی دیت را نداشته باشد افزونه شما چطور کار میکند! پس تا به اینجا با ارائه دو مثال میخواهم به شما بگویم که همیشه قبل از ساخت و توسعه افزونه وردپرس به میزان وابستگی یا تداخل کدهای افزونه خود با دیگر افزونه های وردپرس و پوسته های وردپرس دقت کافی را داشته باشید.
استفاده از جداول پیش فرض دیتابیس وردپرس
شما به عنوان برنامه نویس PHP می بایست به طور کامل با ساختار دیتابیس وردپرس آشنا شوید ٬ ایجاد جدول دلخواه در دیتابیس وردپرس خیلی کار جالبی نیست ٬ زیرا تا زمانی که خود وردپرس جداولی پیش فرض برای ارتباط برنامه شما با دیتابیس دارد نباید جدول جدید ایجاد نمایید.
به عنوان مثال : دیتابیس وردپرس دارای جدولی هست به اسم wp_options ٬ مواردی مثل آدرس سایت و … در این جدول قرار میگیرند و حالا فرض مینماییم شما میخواهید شماره تلفنی را در دیتابیس وردپرس ذخیره نمایید ٬ ساخت جدول جدید برای انجام این کار شاید فقط هدر دادن وقت باشد ٬به همین ترتیب جداولی دیگری وجود دارند که بهتر است قبل از ایجاد جدول جدید آن را مد نظر داشته باشید.
استفاده از توابع پیش فرض وردپرس
وردپرس دارای یکسری توابع پیش فرض هست که میبایست حتما و حتما از آنها استفاده نمایید ٬ درست مثل توضیحاتی که در مورد جداول دیتابیس وردپرس داده شد حتما قبل از نوشتن یک تابع جدید باید چک نمایید که آیا خود وردپرس آن تابع را نوشته است یا خیر ٬به عنوان مثال اگر بخواهید چک نمایید که یک کاربر در سایت لاگین نموده است یا خیر باید از تابع پیش فرض is_user_logged_in استفاده نمایید.
حالا اگر شما اسرار داشته باشید که به جای استفاده از توابع پیش فرض وردپرس توابع خود را بنویسید به دو دلیل زیر توصیه میشود که این کار را نکنید :
- توسعه افزونه وردپرس شما توسط برنامه نویسان دیگر سخت میشود
- با آپدیت جدید وردپرس و به روزرسانی ها نیازی نیست زمان خود را برای آپدیت یا تغییر تابع بگذارید
افزونه شما قابل ترجمه باشد
وردپرس این امکان را در اختیار توسعه دهندگان وردپرس قرارداده است که افزونه وردپرس خود را به وسیله Textdomain قابل ترجمه قراردهند برای دیگر زبان ها ٬ حالا چه زبانی را به عنوان زبان پیش فرض افزونه باید مبنا قرار داد ؟ قطعا زبان انگلیسی ٬چون زبان پیش فرض وردپرس و بین الملل انگلیسی می باشد.
حالا که تصمیم دارید افزونه ای بنویسید که در همه جای دنیا قابل ترجمه باشد با زبان انگلیسی شروع نمایید و به وسیله Textdomain افزونه خود را به سایر زبان ها مثل فارسی ترجمه نمایید.