چگونگی نوشتن یک پلاگین وردپرسی

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

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

دوره جامع متخصص وردپرس

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

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

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

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

کلاس آموزش کرل

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

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

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

دوره های گرافیک

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

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

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

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

کلاس آموزش php

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

سعی نمایید تا حد ممکن از ایجاد جداول جداگانه در دیتابیس بپرهیزید.بهتر است تا جایی که ممکن است از post type ها ،taxonomy و تنظیمات وردپرس برای براورده نمودن نیازهایتان استفاده نمایید.
میتوانید برای ذخیره نمودن اطلاعات از راهنمای زیر استفاده نمایید:
• در صورتیکه اطلاعات شما دائمی هستند اما همیشه موجود نیستند ،از cash استفاده نمایید .
• اگر اطلاعات همیشه موجود نیستند ،بعنوان مثال منقضی میشوند ،از 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)

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

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

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

دوره آموزش نرم افزار کورل

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

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

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

کلاس آموزش icdl