چطور پلاگین بنویسیم

یکی از محبوب تربن cmsها در زمینه طراحی سایت وردپرس است بطوریکه بیش از 37 درصد از کل سایت های دنیا با این سیستم مدیریت محتوا طراحی شده اند.

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

آموزشگاه جاوا اسکریپت

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

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

چگونه پلاگین بنویسیم

کلاس آموزش جامع وردپرس

ساختار پلاگین چگونه است؟

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

کلاس طراحی سایت پیشرفته

یک پلاگین به چه صورت کار میکند؟

به منظور بهره برداری از پلاگین ها میبایست آن ها را در فولدر wp-content/plugin آپلود نموده باشید.پس از آن لازم است تا پلاگین را به حالت فعال دراورید تا قسمتی از کد شما را بر روی هر صفحه بارگذاری نماید .
نکته : دقت نمایید استفاده بیش از حد از پلاگین ها ،سرعت سایتتان را پایین میاورد

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

نامگذاری فایل پلاگین
برای ایجاد یک افزونه جدید ،مانند دیگر پلاگین ها می بایست ،نام اصلی پلاگین ووکامرسی شما ،از نام پلاگین و نامی که برای فولدر انتخاب میکنید تبعیت کند.بعنوان مثال اگر نام فولدری که پلگین داخل آن است را test-plugin انتخاب کرده اید ،نام فایل اصلی پلاگین test-plugin.php خواهد بود.

دوره آموزشی طراحی سایت

بومی ساختن پلاگین
زبان هسته وردپرس ،زبان انگلیسی است .بنابراین میبایست تمامی رشته هایی که درون افزونه ها درج میشود ،به زبان انگلیسی باشد.این قانون حتی اگر افزونه شما به زبان فارسی باشد نیز پابرجاست.در این زمان باید افزونه را به زبان انگلیسی طراحی نمایید و سپس با روش ترجمه استاندارد ،فایل های ترجمه به زبان دلخواهتان را به آن اضافه نمایید .مثلا fa_IR.mo و …

پلاگین text domain
به منظور بومی ساختن یک پلاگین از text domain استفاده میشود.در اینجا نیز میبایست نام text domain از نام فولدر آن تبعیت کند.

پیروی از استانداردهای کد نویسی

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

دوره آموزش بوت استرپ

ذخیره اطلاعات در استفاده از آن ها در دیتابیس

سعی نمایید تا حد ممکن از ایجاد جداول جداگانه در دیتابیس بپرهیزید.بهتر است تا جایی که ممکن است از post type ها ،taxonomy و تنظیمات وردپرس برای براورده نمودن نیازهایتان استفاده نمایید.
میتوانید برای ذخیره نمودن اطلاعات از راهنمای زیر استفاده نمایید:

• اگر اطلاعات همیشه موجود نیستند ،بعنوان مثال منقضی میشوند ،از transient استفاده نمایید.
• اگر اطلاعاتتان دائمی است و مجبور هستید همواره آن ها را تامین نمایید و همیشه باید موجود باشند ،از جداول تنظیمات وردپرس یعنی wp-options استفاده نمایید.
• در صورتیکه اطلاعات شما دائمی هستند اما همیشه موجود نیستند ،از کش استفاده نمایید .
• اگر از اطلاعات برای مرتب سازی امور دیگری استفاده میکننید از taxonomy استفاده نمایید.
• اگر اطلاعاتتان ذاتا نامحدود است ،باید از post typeها استفاده نمایید.
نکته : برای نوشتن لاگ در یک فایل ،از کلاس WC_Logger استفاده نمایید.

جلوگیری از نشت اطلاعات

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

کلاس های آموزش برنامه نویسی

بنابراین برای جلوگیری این مسئله، میبایست کد زیر را به ابتدای فایل های PHP خود اضافه کنید :
if ( ! defined( ‘ABSPATH’ ) )
{ exit; // Exit if accessed directly }

روش پلاگین نویسی برای وردپرس

فایل readme بسازید

تمامی افزونه ها ملزم به داشتن یک فایل readme هستند.
یک نمونه از فایل readme استاندارد در افزونه ووکامرسی میتواند بشکل زیر باشد:
Plugin Name
Contributors: (this should be a list of wordpress.org userid’s)
Tags: comments, spam
Requires at least: 4.0.1
Tested up to: 4.3
Stable tag: 4.3
License: GPLv3 or later License
URI: http://www.gnu.org/licenses/gpl-3.0.html
WC requires at least: 2.2
WC tested up to: 2.3

دوره آموزش طراحی سایت

اطلاعات افزونه

تمامی افزونه ها ملزم به در بر داشتن اطلاعاتی چون نام افزونه ،آدرس افزونه ،توضیحات ،نام نویسنده ،آدرس نویسنده (url) و … هستند.تمامی اطلاعات ذکر شده را بشکل قطعه کد زیر به فایل اصلیتان
/**
* Plugin Name: bigtheme Woo Commerce Extension
* Plugin URI: https://bigtheme.ir/?p=4955
* Description: Your extension’s description text.
* Version: 1.0.0
* Author: bigtheme
* Author URI: https://bigtheme.ir/
* Text Domain: bigtheme-woocommerce-extension
* Domain Path: /languages
*
* Copyright: © ۲۰۰۹-۲۰۱۵ WooCommerce.
* License: GNU General Public License v3.0
* License URI: http://www.gnu.org/licenses/gpl-3.0.html
*/

درج توضیحات در کد (COMMENT)

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

دوره آموزش asp.net

تست کردن افزونه

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

جدا نمودن ظاهر برنامه از منطق

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

ذخیره نمودن لاگ اطلاعات
شاید برای رفع اشکلات برنامه نویسی بخواهید سابقه لاگ
پلاگین را در جایی بصورت ذخیره داشته باشید تا در آینده بتوانبد به آن دسترسی داشته باشید.این موضوع مستلزم دو مورد است :
1. از کاربر اجازه داشته باشید تا اطلاعات دیباگ سیستمش را ذخیره نمایید.
2. برای این منظور از عمل کلاس WC_Logger استفاده نمایید تا اطلاعات برای خود کاربر نیز در صفحه وضعیت سیستم قابل دسترس باشد.