ابتدای کار بگم که این کار خیلی روش پیچیدهای نداره و خیلی راحت میتونید یک پلاگین در worpress.org به اسم خودتان داشته باشید.
مزایای انتشار پلاگین در مخزن ورپرس
اولین مزیت و البته مهمترین آن دیده شدن پلاگین شما است. یک جامع بزرگ مصرف کننده که این شانس را دارید که پلاگین شما را ببینند، استفاده کنند و در نهایت فیدبک بدند.
داشتن آمار دریافت پلاگین شما که میتوانید بفهمید که افزونه شما چندبار دریافت شده است. (یا نصب شده است)
میتوانید انتقادات و پیشنهادات کاربران را دریافت کنید. این بخش میتواند شامل گزارش باگها و یا ایدههای تازه برای بهبود افزونه باشد.
فرض کنید که شما یک افزونه را منتشر کردهاید و آن را در مخزن وردپرس ثبت نکردهاید. اگر بخواهید یک نسخه جدید از افزونه را منتشر کنید مطلع کردن کاربران کار بسیار سختی است اما با ثبت افزونه در مخزن وردپرس به راحتی میتوانید تمامی کاربران را از انتشار نسخه تازه آگاه کنید و عملا به روز رسانی آن آسان خواهد بود.
اگر یک افزونه در مخزن رسمی وردپرس داشته باشید کاربران شما را به عنوان یک توسعه دهنده معتبر خواهند شناخت. به طور کلی مردم به افزونههای موجود در مخزن اعتماد بیشتری دارند.
ابتدای کار بگوییم که بهترین راهنما سایت وردپرس است و عملات راهنمایی که ما اینجا قرار دادیم چیزی خارج از آن نیست پس شما میتوانید با استفاده از این لینک به راهنمای انتشار پلاگین در سایت وردپرس دسترسی داشته باشد.
در اولین مرحله شما باید یک فایل با نام readme.txt برای افزونه خود بسازید و افزونه را از طریق این لینک ارسال کنید تا پس از مدتی (بعضی از افزونهها پس از چند ساعت و بعضیها هم پس از چند روز) تایید شود.
آموزش ساخت فایل readme.txt
وردپرس یک فایل readme.txt استاندارد دارد که از اینجا میتوانید آنرا دریافت کنید. یا با استفاده از این لینک از استاندارد بودن این فایل مطمئن شوید.
نمونه یک فایل readme
=== Plugin Name ===
Contributors: (this should be a list of wordpress.org userid's)
Donate link: https://example.com/
Tags: comments, spam
Requires at least: 4.6
Tested up to: 4.7
Stable tag: 4.3
Requires PHP: 5.2.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Here is a short description of the plugin. This should be no more than 150 characters. No markup here.
== Description ==
This is the long description. No limit, and you can use Markdown (as well as in the following sections).
For backwards compatibility, if this section is missing, the full length of the short description will be used, and
Markdown parsed.
A few notes about the sections above:
* "Contributors" is a comma separated list of wordpress.org usernames
* "Tags" is a comma separated list of tags that apply to the plugin
* "Requires at least" is the lowest version that the plugin will work on
* "Tested up to" is the highest version that you've *successfully used to test the plugin*. Note that it might work on
higher versions... this is just the highest one you've verified.
* Stable tag should indicate the Subversion "tag" of the latest stable version, or "trunk," if you use `/trunk/` for
stable.
Note that the `readme.txt` of the stable tag is the one that is considered the defining one for the plugin, so
if the `/trunk/readme.txt` file says that the stable tag is `4.3`, then it is `/tags/4.3/readme.txt` that'll be used
for displaying information about the plugin. In this situation, the only thing considered from the trunk `readme.txt`
is the stable tag pointer. Thus, if you develop in trunk, you can update the trunk `readme.txt` to reflect changes in
your in-development version, without having that information incorrectly disclosed about the current stable version
that lacks those changes -- as long as the trunk's `readme.txt` points to the correct stable tag.
If no stable tag is provided, it is assumed that trunk is stable, but you should specify "trunk" if that's where
you put the stable version, in order to eliminate any doubt.
== Installation ==
This section describes how to install the plugin and get it working.
e.g.
1. Upload the plugin files to the `/wp-content/plugins/plugin-name` directory, or install the plugin through the WordPress plugins screen directly.
1. Activate the plugin through the 'Plugins' screen in WordPress
1. Use the Settings->Plugin Name screen to configure the plugin
1. (Make your instructions match the desired user flow for activating and installing your plugin. Include any steps that might be needed for explanatory purposes)
== Frequently Asked Questions ==
= A question that someone might have =
An answer to that question.
= What about foo bar? =
Answer to foo bar dilemma.
== Screenshots ==
1. This screen shot description corresponds to screenshot-1.(png|jpg|jpeg|gif). Note that the screenshot is taken from
the /assets directory or the directory that contains the stable readme.txt (tags or trunk). Screenshots in the /assets
directory take precedence. For example, `/assets/screenshot-1.png` would win over `/tags/4.3/screenshot-1.png`
(or jpg, jpeg, gif).
2. This is the second screen shot
== Changelog ==
= 1.0 =
* A change since the previous version.
* Another change.
= 0.5 =
* List versions from most recent at top to oldest at bottom.
== Upgrade Notice ==
= 1.0 =
Upgrade notices describe the reason a user should upgrade. No more than 300 characters.
= 0.5 =
This version fixes a security related bug. Upgrade immediately.
== Arbitrary section ==
You may provide arbitrary sections, in the same format as the ones above. This may be of use for extremely complicated
plugins where more information needs to be conveyed that doesn't fit into the categories of "description" or
"installation." Arbitrary sections will be shown below the built-in sections outlined above.
== A brief Markdown Example ==
Ordered list:
1. Some feature
1. Another feature
1. Something else about the plugin
Unordered list:
* something
* something else
* third thing
Here's a link to [WordPress](https://wordpress.org/ "Your favorite software") and one to [Markdown's Syntax Documentation][markdown syntax].
Titles are optional, naturally.
[markdown syntax]: https://daringfireball.net/projects/markdown/syntax
"Markdown is what the parser uses to process much of the readme file"
Markdown uses email style notation for blockquotes and I've been told:
> Asterisks for *emphasis*. Double it up for **strong**.
`<?php code(); // goes in backticks ?>`
- Plugin Name : نام افزونه (انگلیسی)
- Contributors : سازندگان افزونه – در این قسمت باید نام کاربری سایت WordPress.org را وارد کنید. اگر افزونه شما به وسیله چند توسعه دهنده ساخته شده میتوانید نام کاربری آنها را به وسیله کامای لاتین (,) جدا کنید.
- Donate link : لینک کمک مالی به افزونه
- Tags : برچسبهای افزونه – این برچسبها را مانند برچسب زدن هنگام ارسال نوشته به وسیله ویرگول لاتین (,) جدا کنید.
- Requires at least : حداقل نسخه وردپرس که افزونه به آن نیاز دارد.
- Tested up to : بالاترین نسخه وردپرس که افزونه روی آن تست شده است.
- Stable tag : نسخه فعلی (پایدار) افزونه
- License : این قسمت هم مربوط به مجوز افزونه است که باید بر اساس GPL نسخه 2 یا بالاتر باشد. نیازی به تغییر این قسمت نیست.
و بعد از این قسمتها باید توضیحات کوتاهی دربارهی افزونه بنویسید. این قسمت نباید بیشتر از 150 حرف باشد و باید به صورت متن نوشته شود.
در قسمت بعدی یعنی Description باید توضیحات افزونه را وارد کنید که در صفحه اصلی افزونه و در تب Description نمایش داده میشوند.
در قسمت Installation باید توضیخاتی دربارهی نحوهی نصب افزونه و این که افزونه چطور کار میکند، بدهید.
Frequently Asked Questions مخصوص پرسشهای متداول کاربران دربارهی افزونه است. در این قسمت باید پرسشهای مشترکی که ممکن است برای همه کاربران پیش بیاید را بنویسید و به آن پاسخ دهید.
قسمت Screenshots هم میتوانید به حالتهای مختلف بر اساس تعداد اسکرین شاتهای خود پر کنید فقط نکتهای که این قسمت دارد این است که شما باید در این قسمت توضیحات کوتاهی از اسکرین شاتها بدهید و این توضیحات در پایین عکس نمایش داده میشود و خود فایلهای عکس را در مرحله آخر در پوشه assets با فرمت اسم screenshot-1 قرار میدهیم.
1. This screen shot description 1
2. This screen shot description 2
3. This screen shot description 3
حال باید تصاویری را با نامهای (png یا jpg یا jpeg یا gif) بسازید و در پوشه افزونه قرار دهید.
در قسمت Changelog باید لیست تغییرات در نسخههای مختلف افزونه برای هر نسخه را بنویسید.
اگر میخواهید هنگام بهروزرسانی افزونه یک اطلاعیه برای کاربران بفرستید میتوانید از قسمت آخر یعنی Upgrade Notice استفاده کنید.
حالا که فایل readme.txt ساخته شد باید افزونه را به همراه این فایل برای ثبت در مخزن ارسال کنید.
بعد از چند روز اگر افزونه مشکلی نداشت ایمیلی با موضوع تایید شدن افزونه برای شما ارسال میشود که در آن آدرس SVN افزونه نیز موجود است. آدرس SVN به شکل زیر است:
http://plugins.svn.wordpress.org/your-plugin/
برای کار با SVN ما به یک نرم افزار نیاز داریم که ما نرم افزار RabbitVCS مخصوص لینوکس را پیشنهاد میکنیم که میتوانید آن را از اینجا دریافت کنید.
نرم افزار را نصب کنید.
حال باید یک پوشه در رایانه خود با یک نام دلخواه بسازید. ما در اینجا نام پوشه خود را compute-link در نظر میگیریم. روی پوشه راست کلیک کنید و گزینه RabbitVCS SVN را انتخاب و بر روی Add کلیک کنید.
بعد از کلیک روی این گزینه پنجرهی نمایان میشود که باید فایلهایی که میخواهید ارسال کنید را انتخاب کنید. و سپس دوباره راست کلیک کرده و گزینه update to revision را انتخاب کرده و آدرس ریپاسیتوری خود را انتخاب کنید. (آدرس بالایی که تو ایمیل ارسال شده است)
صبر کنید تا عملیات پایان یابد.
بعد از پایان این کار چند پوشه در پوشه شما ساخته میشود که عبارتاند از:
- assets
- branches
- tags
- trunk
از پوشه اول یعنی assets شروع میکنیم.
تصویر سربرگ افزونه، آیکون و اسکرینشاتها در پوشه قرار میگیرند.
برای فرمت عکسها از این لینک استفاده کنید.
همهی فایلهای افزونه (فایل readme.txt – فایلهای پی اچ پی – پوشهها – اسکرین شاتها و…) را در پوشه trunk قرار دهید سپس روی پوشهای که ساختید راست کلیک کنید و گزینه SVN Commit را بزنید.
در قسمت Message یک پیام دلخواه بنویسید و روی OK کلیک کنید.
نرمافزار از شما نام کاربری و رمز عبور درخواست میکند. در این قسمت باید نام کاربری و رمز عبور سایت WordPress.org را وارد کنید و صبر کنید تا عملیات پایان یابد. روی OK کلیک کنید.
تبریک میگوییم افزونه شما با موفقیت منتشر شد!
پوشه branches برای بهروزرسانیهای عمده مورد استفاده قرار میگیرد.
آموزش به روزرسانی افزونه:
پوشه tags برای بهروزرسانی افزونه به نسخههای جدید در نظرگرفته شده است.
فرض کنید شما میخواهید افزونه را از نسخه 1.0 به نسخه 2.0 ارتقا دهید.
برای این کار باید یک پوشه در پوشه tags با نام 1.0 بسازید و کلیه محتویات پوشه trunk را در آن کپی کنید.
حال تغییراتی که میخواهید در افزونه انجام دهید را روی فایلهای موجود پوشه trunk انجام دهید (تغییر نسخه افزونه، تغییر کدهای افزونه و…).
روی پوشه افزونه کلیک کنید و گزینه SVN Commit را بزنید و کارهایی را که هنگام منتشر کردن افزونه انجام میدادید، اینجا هم انجام دهید و افزونه خود را به روزرسانی کنید.
منابع:
https://wordpress.org/plugins/developers/#readme
https://codex.wordpress.org/Writing_a_Plugin
Introduction to Plugin Development
How Your Plugin Assets Work
https://mandegarweb.com/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%AB%D8%A8%D8%AA-%D8%A7%D9%81%D8%B2%D9%88%D9%86%D9%87-%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D8%AF%D8%B1-%D9%85%D8%AE%D8%B2%D9%86-%D9%88%D8%B1%D8%AF%D9%BE%D8%B1%D8%B3