این پست به عنوان بخشی از سری “چگونه یک پلاگین وردپرس بنویسیم” است. یکی از مهمترین جنبه های توسعه یک پلاگین وردپرس، این است که چگونه به آن ساختار می دهید. این پست به برخی از راهنمایی ها در مورد اینکه چگونه به پلاگین خود ساختار داده و منابع آن را سازماندهی و از نامگذاری کلیژن ها جلوگیری کنید. نویسنده های پلاگین در چگونگی ساختار دادن به یک پلاگین با هم متفاوت هستند، بنابراین این راهنمایی ها صرفا ترجیح شخصی من است. در ابتدا چگونگی کار کردن یک پلاگین وردپرس را به طور خلاصه توصیف کرده و پس از آن به چگونگی ساختار یک پلاگین می پردازم.
پس از قرار دادن یک پلاگین وردپرس در پوشه”wp-content/plugins /” ، این پلاگین باید به طور خودکار برای نصب در دسترس باشد.
هنگامی که یک پلاگین “فعال” می شود، به وردپرس می گوید که کمی از کد شما را
بر روی “هر” صفحه بارگذاری کند(از جمله صفحه ادمین). به این دلیل است که
اگر تعداد زیادی پلاگین های فعال شده داشته باشید، به علت بالا بودن تعداد
کد ها، نصب وردپرس شما ممکن است بسیار آهسته باشد.
از آنجا که وردپرس، زمانی که پلاگین فعال می شود به طور خودکار کدهای شما را بارگذاری می کند، می توانید از این فرصت با ضربه زدن به Application Program Interface (API) پلاگین وردپرس، استفاده کنید. شما همچنین می توانید به تگ های قالب وردپرس دسترسی پیدا کرده و یا یکی مخضوض به خودتان ایجاد نمایید.
اگر می خواهید در محتوای پست هاو یا نظرات تغییر ایجاد کنید، پیشنهاد می کنم مقاله ی حلقه ی وردپرس
را بخوانید. حلقه ی وردپرس، حلقه ای است که پست های شما را نمایش می دهد.
برخی از تگ های قالب در خارج از این حلقه کار خواهند کرد، بنابراین ضروری
است که بدانید کد شما دقیقا کجا در حال اجرا است. شما می توانید این کار را
با استفاده از اکشن ها و فیلترها، که در پست های بعدی توضیح داده خواهد شد، کنترل کنید.
تمامی پلاگین های وردپرس در دایرکتوری نصب خواهند شد. برخی از پلاگین
نویسان به سادگی از یک فایل PHP برای پلاگین خود استفاده می کنند، اما من
توصیه می کنم که همیشه یک پوشه برای ذخیره پلاگین خود ایجاد کنید.
من به طور معمول پلاگین خود را در پوشه ای با این ساختار، ساختاربندی می کنم:
• نام پوشه ی پلاگین(نام پلاگین شما بدون هیچ فاصله یا کاراکتر ویژه ای)
۱٫ فایل PHP پلاگین اصلی
۲٫ پوشه ی JS (برای فایل های جاوا اسکریپت)
۳٫ پوشه ی CSS (برای فایل های StyleSheet)
4. پوشه ی PHP (برای باقی فایل هایی که شامل PHP می شوند)
به عنوان مثال، در اینجا یک ساختار نمونه که خودم ایجاد کرده ام وجود دارد:
• devlounge-plugin-series
o devlounge-plugin-series.php
o js
o css
o php
می خواهم فقط فایل PHP اصلی را در داخل پوشه devlounge-plugin-series
گذاشته، و فایل های دیگر را هم در پوشه مربوطه به خودشان قرار دهم. این
ساختار میتواند به دیگر پلاگین نویسان، که کدهای شما را می بینند برای
تشخیص اینکه کدام فایل، فایل اصلی پلاگین است و فایل های پشتیبانی در کجا
قرار دارند، کمک کند.
وردپرس همچنین قرار دادن تصاویر در دایرکتوری مربوط به خودشان و اضافه کردن یک فایل “مرا بخوانید” به پلاگینتان را توصیه می کند.
مطلب مرتبط :
هنگامی که شما یک فایل پلاگین جدید را شروع می کنید، هفت خط اول خطوطی است که پلاگین را توصیف می کند.
1 2 3 4 5 6 7 | <?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 ? |
خط ۳ به شما اجازه می دهد که برای پلاگین خود نام انتخاب کنید. خط ۴ به شما اجازه می دهد که محل پلاگین خود را در وب به یک کاربر نشان دهید. خط ۵ اجازه می دهد که نسخه فعلی را مشخص کنید. خط ۶ به شما اجازه می دهد تا نویسنده ی پلاگین را مشخص کنید. خط ۷ به شما اجازه می دهد که پلاگین خود را توصیف کنید.
آنچه که در زیر آمده است مثال پر کردن کد است:
1 2 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. |
آنچه که در زیر نشان داده شده است تصویری از چیزی است که پلاگین در پانل پلاگین وردپرس به آن شبیه خواهد بود.
لازم نیست که به طور فوق العاده با طبقه بندی های PHP برای توسعه پلاگین های وردپرس آشنا باشید، اما مطمئنا می تواند کمک کند. ساختار طبقاتی به منظور اجتناب از ترکیب نامگذاری ها با دیگر پلاگین های وردپرس لازم است. اگر کسی در جای دیگری یک عملکرد را در یک پلاگین با نبم مشابهی را ایجاد کند، یک خطا بوجود خواهد آمد و وردپرس تا زمانی که پلاگین برداشته شود غیر قابل اجرا خواهد شد.
1 2 3 4 5 6 7 8 9 | if (! class_exists ( "DevloungePluginSeries" )) { class DevloungePluginSeries { function DevloungePluginSeries() { //constructor } } } //End Class DevloungePluginSeries |
کاری که کد بالا انجام می دهد این است که وجود یم طبقه به نام DevloungePluginSeries را چک می کند. اگر این طبقه بندی وجود نداشته باشد، آن را ایجاد خواهد کرد.
قسمت بعدی کد طبقه بندیتان را شروع خواهد کرد.
1 2 3 | if ( class_exists ( "DevloungePluginSeries" )) { $dl_pluginSeries = new DevloungePluginSeries(); } |
اگر طبقه بندی DevloungePluginSeries ایجاد شده باشد، همه ی کدهای فوق وجود آن را چک خواهند کرد. اگر چنین باشد، یک متغیر به نام $dl_pluginSeriesبا یک مثال از طبقه بندی DevloungePluginSeries ایجاد می شود.
قسمت بعدی کد، جا نگهدارنده ای برای عملیات ها و فیلترها در وردپرس (که من در پست بعد به آن می پردازم) ایجاد می کند.
1 2 3 4 5 6 7 8 | //Actions and Filters if (isset( $dl_pluginSeries )) { //Actions //Filters } ?> |
کد بالا برای اطمینان از راه اندازی $dl_pluginSeries ، چک می کند. اگر چنین باشد(و تنها در صورتی که طبقه بندی موجود باشد)، آنگاه عملیات و فیلترهای مناسب راه اندازی شده اند.
این پست به عنوان یک ساختار بنیادین بسیار اساسی برای شروع یک پلاگین وردپرس خدمت می کند.
مطالعه و تحقیق در باره ی کدهای پلاگین یک راه عالی برای یادگیری درباره ی
همه ی ابعاد طراحی پلاگین است. من هنوز این کار را انجام می دهم، و هر روز
تقریبا مطالب جدیدی یادمی گیرم.
برای مطالعه بیشتر، لطفا از این لینک های زیر استفاده کنید: