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

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

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

پس از قرار دادن یک پلاگین وردپرس در پوشه”wp-content/plugins /” ، این پلاگین باید به طور خودکار برای نصب در دسترس باشد.
هنگامی که یک پلاگین “فعال” می شود، به وردپرس می گوید که کمی از کد شما را بر روی “هر” صفحه بارگذاری کند(از جمله صفحه ادمین). به این دلیل است که اگر تعداد زیادی پلاگین های فعال شده داشته باشید، به علت بالا بودن تعداد کد ها، نصب وردپرس شما ممکن است بسیار آهسته باشد.
از آنجا که وردپرس، زمانی که پلاگین فعال می شود به طور خودکار کدهای شما را بارگذاری می کند، می توانید از این فرصت با ضربه زدن به Application Program Interface (API) پلاگین وردپرس، استفاده کنید. شما همچنین می توانید به تگ های قالب وردپرس دسترسی پیدا کرده و یا یکی مخضوض به خودتان ایجاد نمایید.
اگر می خواهید در محتوای پست هاو یا نظرات تغییر ایجاد کنید، پیشنهاد می کنم مقاله ی حلقه ی وردپرس را بخوانید. حلقه ی وردپرس، حلقه ای است که پست های شما را نمایش می دهد. برخی از تگ های قالب در خارج از این حلقه کار خواهند کرد، بنابراین ضروری است که بدانید کد شما دقیقا کجا در حال اجرا است. شما می توانید این کار را با استفاده از اکشن ها و فیلترها، که در پست های بعدی توضیح داده خواهد شد، کنترل کنید.

ساختار پوشه

تمامی پلاگین های وردپرس در دایرکتوری نصب خواهند شد. برخی از پلاگین نویسان به سادگی از یک فایل PHP برای پلاگین خود استفاده می کنند، اما من توصیه می کنم که همیشه یک پوشه برای ذخیره پلاگین خود ایجاد کنید.
من به طور معمول پلاگین خود را در پوشه ای با این ساختار، ساختاربندی می کنم:
• نام پوشه ی پلاگین(نام پلاگین شما بدون هیچ فاصله یا کاراکتر ویژه ای)
1. فایل PHP پلاگین اصلی
2. پوشه ی JS (برای فایل های جاوا اسکریپت)
3. پوشه ی CSS (برای فایل های StyleSheet)
4. پوشه ی PHP (برای باقی فایل هایی که شامل PHP می شوند)

به عنوان مثال، در اینجا یک ساختار نمونه که خودم ایجاد کرده ام وجود دارد:

• devlounge-plugin-series
o devlounge-plugin-series.php
o js
o css
o php
می خواهم فقط فایل PHP اصلی را در داخل پوشه devlounge-plugin-series گذاشته، و فایل های دیگر را هم در پوشه مربوطه به خودشان قرار دهم. این ساختار میتواند به دیگر پلاگین نویسان، که کدهای شما را می بینند برای تشخیص اینکه کدام فایل، فایل اصلی پلاگین است و فایل های پشتیبانی در کجا قرار دارند، کمک کند.
وردپرس همچنین قرار دادن تصاویر در دایرکتوری مربوط به خودشان و اضافه کردن یک فایل “مرا بخوانید” به پلاگینتان را توصیه می کند.

  اضافه کردن میانبر برای افزونه ها در نوار مدیریت + آموزش ویدیویی

فایل اصلی پلاگین

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

<?php
/* 
Plugin Name: Your Plugin Name Here
Plugin URI: Your Plugin URI
Version: Current Plugin Version
Author: Who Are You?
Description: What does your plugin do?

خط 3 به شما اجازه می دهد که برای پلاگین خود نام انتخاب کنید. خط 4 به شما اجازه می دهد که محل پلاگین خود را در وب به یک کاربر نشان دهید. خط 5 اجازه می دهد که نسخه فعلی را مشخص کنید. خط 6 به شما اجازه می دهد تا نویسنده ی پلاگین را مشخص کنید. خط 7 به شما اجازه می دهد که پلاگین خود را توصیف کنید.
آنچه که در زیر آمده است مثال پر کردن کد است:

<?php
/* 
Plugin Name: Devlounge Plugin Series
Plugin URI: http://www.devlounge.net/
Version: v1.00
Author: <a href="http://www.ronalfy.com/">Ronald Huereca</a>
Description: A sample plugin for a <a href="http://www.devlounge.net">Devlounge</a> series.

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

devlounge-plugin-screenshot

راه اندازی یک ساختار طبقاتی

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

if (!class_exists("DevloungePluginSeries")) {
	class DevloungePluginSeries {
		function DevloungePluginSeries() { //constructor
			
		}
	
	}

} //End Class DevloungePluginSeries

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

شروع کردن طبقه بندیتان

قسمت بعدی کد طبقه بندیتان را شروع خواهد کرد.

if (class_exists("DevloungePluginSeries")) {
	$dl_pluginSeries = new DevloungePluginSeries();
}

اگر طبقه بندی DevloungePluginSeries ایجاد شده باشد، همه ی کدهای فوق وجود آن را چک خواهند کرد. اگر چنین باشد، یک متغیر به نام $dl_pluginSeriesبا یک مثال از طبقه بندی DevloungePluginSeries ایجاد می شود.

راه اندازی عملیات ها و فیلترها

قسمت بعدی کد، جا نگهدارنده ای برای عملیات ها و فیلترها در وردپرس (که من در پست بعد به آن می پردازم) ایجاد می کند.

//Actions and Filters	
if (isset($dl_pluginSeries)) {
	//Actions
	
	//Filters
}

?>

کد بالا برای اطمینان از راه اندازی $dl_pluginSeries ، چک می کند. اگر چنین باشد(و تنها در صورتی که طبقه بندی موجود باشد)، آنگاه عملیات و فیلترهای مناسب راه اندازی شده اند.

نتیجه گیری

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

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

اگر می‌خواهید از آخرین و محبوب‌ترین مقالات ما در ایمیل خود مطلع شوید، همین الان ایمیل خود را در کادر زیر وارد کنید:

تعداد علاقه‌مندانی که تاکنون عضو خبرنامه ما شده‌اند:

331,349 نفر

پاسخی بگذارید

دیدگاه‌های این نوشته جدید ترین ها شاخص

  1. با سلام
    لطفاً در متن بجای طبقه بندی از کلاس استفاده کنید، من اولش نفهمیدم منظورتون از طبقه بندی چیه!

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

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

  4. با سلام

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

    لطفا راهنمایی بفرمایید

  5. سلام. چرا تمجیدها فقط اینجا پاسخ داده میشه و بقیه سوالات بی پاسخ هستند؟

  6. سلام و خسته نباشید . در حال یادگیری ووردپرسم ! ی سوال داشتم من ی پلاگین رو نوشتم ک وقتی فعال میشه ی جدول ب دیتابیس ووردپرس اضافه میکنه با اکشن activated_plugin با یک سری فیلد ک خودم میخوام . اما حالا اگه بخوام توی خود وورد پرس ن توی سایت نشونش بدم و قابلیت ادیت و اضافه کردن موارد رو داشته باشه باید از کدوم هوک ، (اکشن یا فیلتر ) استفاده کنم ؟
    درواقع کجا میتونم جدولم رو نشون ادمین سایت نشون بدم ک بتونه اون رو ادیت کنه ؟ اما توی سایت نشون داده نشه فقط ادمین ک ووردپرس دسترسی داره بتونه ببینه و تنظیمش کنه !

    ممنون میشم جواب بدین

  7. سلام، من یه افزونه میخوام بنویسم که فقط چنتا تکست باکس داشته باشه و توی قالبم ازش استفاده کنم!
    مثلا توی تکس باکس هرچی نوشتم اونجا چاپ شه!
    مثه ضمیمه ی دلخواه که توی کانتنت استفاده میشه….

    ممنون میشم راهنماییم کنین..

  8. سلام
    من دنبال آموزش طراحی قالب برای پنل مدیریت وردپرس هستم اما نتونستم چیزی پیدا کنم

    ببخشید که اینجا کامنت گذاشتم

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

  10. سلام کسی هست که بتونه یه افزونه وردپرس برام درست کنه منتظرم سریع پیام دهید به این ایدی یاهو من
    mohsenme489

  11. آموزش کاملی بود ممنون

  12. سلام آقای روزبه ، برای استفاده از ادیتور به صورت کامل باید از افزونه tiny MCE استفاده کنید

  13. با سلام خدمت شما یه مشکلی ذهن بنده رو خیلی مشغول کرده ترو خدا کمکم کنید دوست عزیز من ورد پرس رو نصب کردم ایا این ورد پرس تنظیمات خاصی میخواد ؟ مثلا من وقتی میخوام یه نوشته بزارم جورچین ها خوب کار نمیکنن مثلا هرچی میزنم که از وسط بنویسه نمیشه نمیدونم چه کار کنم

  14. با سلام… خیلی ممنون از این پست … واقعا عالی … ^_^

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

  16. fbesiyar ali

  17. مثل همیشه عالی بود…
    منتظر مقاله های بیشتری در همین رابطه هستیم.
    دوستت دارم علی جونننننننننننننننن :-*

  18. alihm.ir سر بزن
    چرا قطعه

مطالب زیر را حتما بخوانید

دوره‌های آموزشی