Since its launch in 2003, WordPress has grown to be the most popular and user-friendly Content Management System(CMS) in the world. The official plugin directory was created to meet the needs of having a common set of tools and a common working area for all the WordPress plugin and theme developers.
Its plugin repository, loaded with thousands of plugins is one of the primary reasons why WordPress has emerged as an amazing platform to work with. All of the plugins in WordPress repository is free to use and distribute.
Get 5 Months Free & 30% Off All Plans.
Click the coupon code to copy and open the link »
This is what WordPress has to say about their plugin repository – “The goal of the WordPress Plugin Directory is to provide a safe place for all WordPress users – from the non-technical to the developer – to download plugins that are consistent with the goals of the WordPress project.”
In this article we will describe how you can submit your plugins and theme’s to the official directories along with the benefits that it offers.
Why Submit your plugin to the repository?
Now if you are wandering why you might need to host your plugin at the WP Directory, here are a few reasons to do so –
- Maintain Statistics – By uploading your plugin, you can keep track of how many times your plugin has been downloaded and when.
- Builds Credibility –Having your plugin at the official repository builds your credibility as a developer. Also, WordPress users tends to have more trust on plugins that are a part of the repository.
- Feedback and Reviews – The WP Repository provides a centralized location where users who have downloaded and used your plugin, can rate your plugin, provide feedbacks, comments, bug reports and suggestions on improving your plugin.
- Exposure –When you submit your plugin to the repository, you are making it available to the entire WordPress community. This gives your plugin a good exposure, which in turn may lead to client acquisition and even PayPal donations.
- Easily Upgradable –With SVN, releasing plugin upgrades and notification to users is all very easy to do.
Along with the above mentioned, developers also enjoy the benefits of hosting their plugin for free, managing their code using SVN Client, track bugs and provide extensive documentation.
How to Submit a WordPress Plugin
Before adding your plugin, please check the official guidelines to follow before starting the submission process as follows:
- The plugin must comply with the GPL, GPL2 or a GPL-Compatible license.
- The developers have to take sole responsibility of the contents and actions of their plugins
- A stable version of the plugin must be hosted in the repository
- No trialware is permitted and all functionalities must be made available without any payment or upgrade.
- Plugins should not track user’s activity without their prior consent
Create an Account
Needless to say, if you want to submit a plugin, first you need to register yourself at WordPress.org and create an account. This is fairly simple to do.
Go to wordpress.org, then click on the plugins tab and then on register at the top right corner. Fill in the details and click on Create Account
Have your plugin ready along with its ReadMe.txt file
Aside from having your plugin built and ready for installation, you are also required to create a Readme.txt file which will contain detailed description about your plugin.
WordPress has a pre-defined standard for ReadMe.txt and we recommend sticking to it. Typically, the ReadMe.txt file should contain the following –
=== Plugin Name === Contributors: (this should be a list of wordpress.org userid's) Donate link: http://example.com/ Tags: comments, spam Requires at least: 3.0.1 Tested up to: 3.4 Requires PHP: 5.2.4 Stable tag: 4.3 License: GPLv2 or later License URI: http://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.
Once you have completed the ReadMe.txt file, run it through the official validator to get it approved.
Submitting Your Plugin
Now it’s time to submit your plugin for manual review. Login to your WordPress account and click on Plugins tab. Head over to WordPress Developer Center -> Add Your Plugin. You will be presented with the following page
Add a unique plugin name for your plugin and make sure it’s final since you can’t change the name once you are granted access to the repository.
Give an overall description for your plugin. You can skip much of the details here since everything is already included in the ReadMe.txt file
In the Plugin URL section, specify the location of where your plugin is uploaded. You may upload you compressed plugin file to your website. In case you don’t have a website, there are several other third party websites like Dropbox.com, mediafire.com or Google Drive where you can upload your plugin and then paste the link here.
Once you are done filling up the information, click on Send Post and then wait for the approval. The waiting period may be of several hours so just be patient.
If everything looks good, your plugin will be approved. Eventuallyyou will receive an email with all the credentials you need to access the subversion repository.
Setting up the Subversion repository
Subversion, basically is an open-source software that acts like a version control tool and keeps track of all the changes made to the plugin, along with listing all of the previous versions of your plugin.
The subversion repository is where you will upload and store your plugin. The WordPress system will use the files stored in the subversion repository to generate the web-page for your plugin. You can either use the command line or other GUI subversion clients such as SVN Tortoise.
For this tutorial we will be using the TortoiseSVN. So go ahead,Download and install the software. Installation is pretty simple, similar to the installation of other Windows Applications.
Once the installation is complete, follow the below mentioned steps-
Head over to the directory on your PC where you want your SVN repository to live in.
Right Click on the directory and click on SVN Checkout, which should present you with the following menu
In the “URL of Repository” field, enter the URL that you had received from the WordPress team on your plugin approval email.
In the “Checkout Directory”, enter the location of your local directory. This is where all your downloaded plugin files will be stored locally.
For the rest of the options, you may keep it the way it is.
Finally, click on the OK button.
All the files and the directories that exists in the WordPress SVN repository will now be downloaded to your computer in the specified directory.
Once the operation is completed, you will notice a few new directories are being created inside your local directory with the same name as in the SVN directory.
About the Directory Structure
- Screenshots, icons and headers go into the /assets/ directory
- The/trunk/ is the working directory, where you do all your main development. All the main files are placed inside this directory
- Any Major Updates to your plugin are stored in the /branches/
- The revisions of your plugin are stored in the /tags/ This is where the backups for each version of your plugin are stored.
To summarize, place all your main files in the /trunk/ directory and for the future versions of your plugin, store the major updates in the /branches/ directory and minor updates in the /tags/ directory.
The primary use of subversion is that, any changes made to your local files are automatically copied to the SVN repository on the WordPress server.
Now that we are done with setting up the repository, we can now work on uploading our plugin to the repository.
First we need to add all our files to the source control. To do that, open the trunk folder select all the plugin files and folders including your readme.txt file. Then Right click and select Add
This will instruct subversion to track all these files.
Again right click and click on SVN Commit
You will now be presented with the following screenshot
In the top box, you can specify a simple message indicating the version of your plugin.
Below, you will see a list of files. Select those files that you want to be tracked in the repository.
Note: if you find a file thumbs.db, you can unselect it since it is a windows file and has nothing to do with the plugin.
Next you will be prompted with a login page. Enter your WordPress username and password and click on
The files should now upload to the SVN repository from your computer. An update log will appear on your screen, showing the uploaded files and a bold Completed message once it’s done.
Finally click on OK and your plugin is now publically available from the WordPress Plugins directory.
Adding Revision to tags directory
We have to tag our plugin to have it actually published. The steps are –
Navigate inside your trunk directory in your local computer. Right click on blank space and select TortoiseSVN -> Branch/tag
Next, in the “To path” field, edit the location from /trunk/ to /tags/<version-number>. Most subversion clients by default sets this field with the trunk So make sure to change it as mentioned above.
Check “Specific revision in repository”, located in the middle section of the window.
Enter your WordPress username and password in the following login page and click on
You will now be presented with a window indicating that the task is complete. Click OK
Finally go to the tags directory, right-click and choose SVN Update. This will download all the revision to your computer from the SVN repository.
That all there is to uploading your plugin and making it available in the plugin repository.
How to Submit a WordPress Theme
The WordPress theme directory is where the WP themes live. It is the perfect place to find safe and elegant themes for your WP website. These themes are submitted by developers around the globe. However, enlisting your theme in their repository is no piece of cake, as there are several conditions and requirement to it, aside from a long waiting period.
Here we will discuss about how to upload a theme to WordPress.org theme repository along with the various criteria needed to get your theme approved by the WordPress Community.
WordPress Themes Guidelines
WordPress is quite strict when it comes to uploading themes or plugins. They have a pre-defined set of guidelines that one has to follow during the development process, deviating from which may lead to rejection of your theme. WordPress makes sure that only high-quality and secure themes becomes a part of their repository.
It is highly advised to go through their official Theme Requirements page before you start your development process.
Some of the coding guidelines that you need to meet are –
- All input data should be validated and sanitized prior to entering into the database along with proper escaping of output data, since it is critical to developing a secure and safe theme
- It should have a valid DOCTYPE declaration and include language_attributes
- All PHP functions and classes are required to be prefixed.
- Non-presentational hooks should not be removed or modified
- Provision for an extensive and offline documentation
Apart from the above mentioned coding rules, there are several other guidelines that a developer needs to follow –
- The theme must be GPL, GPL2 or GPL-compatible licensed
- All theme text strings are to be translatable
- The words – WordPress, Theme should not be used as part of the theme’s name
- WordPress should be spelt in that exact way, with an upper case W and P, in any public facing text
- Themes cannot include plugins and can recommend only those plugins which are available in the WP plugin repository
These list of theme guidelines goes on with several other requirements.
Setting Up Your Development Environment
After you have familiarized yourself with the various guidelines, it’s time to develop and test your theme. To run and test your theme, you need to setup a WordPress development environment on your local machine, which in a nutshell is a collection of tools to safely test your project before they go live. The steps are mentioned below –
Download a web server application
Since WordPress is PHP based, you will need a webserver software locally installed on your system. Download and install a local server stack such as XAMPP, WAMP or MAMP on your local computer.
In addition, you will also require a text editor to write your code. You can choose any text editor you want like SublimeText, Notepad, etc.
Before you start coding, it is important to enable WordPress’s debugging function. This function enables WordPress to display any errors generated by your code.
Open your WordPress installation’s wp-config.php file.
|Change||define( ‘WP_DEBUG’, false );|
|To||define( ‘WP_DEBUG’, true );|
Import Theme Unit Test data
Next you need to import the Theme Unit Test Data, which will fill your local WordPress installation with dummy test data, giving a real feel of how your theme will look and perform with different content and layouts.
Additionally, you can install the following plugins to further enhance your development environment
- Debug bar – this add an admin bar, providing a central debugging location
- Query Monitor–for debugging your database queries
- Developer –to optimize the environment and ensuring code quality
- Theme Check–This plugin checks if your theme is in compliance with the latest WordPress standards and practices.
Check your Theme
By this time, you are almost ready with your theme. But before publishing your theme, you need to do the following –
- Check your theme’s compatibility with different browsers. Also install the theme across various devices and screen sizes to check its layout.
- Use the Theme Check Plugin to review your theme’s code
- Go through the guidelines and recommendations once again, for the last time
If everything is fine, you can go ahead with uploading your theme.
Uploading your theme
- To upload your theme, login to your WordPress account
- Navigate to https://wordpress.org/themes/upload/and then upload your theme’s .zip archive
- During the uploading process, your theme may run against a series of pre-set checks to test your theme. Be Patient!
Once your theme has been submitted, it will be reviewed by a group of WordPress volunteers, whose sole responsibility is to review the submitted themes and approve or disapprove it. This approval process may take months to complete and so being patient about it is perhaps the only thing you can do.
During the review process, you may receive an email if there are any issues with your theme. Fix the issues and resubmit the theme.
When all the issues are resolved and your theme has met all the requirement, it will be approved by the reviewer.
If you are expecting your theme to go live after approval, then sadly you are mistaken. After your theme has passed the initial review, next it is appended to another queue, where it will be thoroughly reviewed by an admin team member or a key reviewer.
This process again is time consuming and you might need to wait for another month or so, depending on where your theme is placed in the admin review queue.
You can also check the current theme approval queue using this link
Only when all the issues generated at this phase are resolved, your theme will get the final approval and ultimately go live. You will also receive an email from the WordPress team indicating the same.
If you are a developer, then consider making this effort to publish your plugins or themes in the WordPress repository. Not only will you be making a big contribution to the online community, you will also be building your own credibility as a proficient developer.
And even though, the entire process may extend up to several months, it’s worth spending that time to get your theme published.
excellent, it will help to think and grow
I have been a wordpress developer for 3 years. I really love WordPress.
I want to make lots free beautiful theme for people that loves wordpress.
Thanks for guiding.
Great Info. Excellent… Thank You For Sharing With Us…
Excellent tutorial. Really clear.
I noticed a couple of typos…
>Note: if you find a file thumbs.db, you can unselect it since it is a windows file and has nothing to do with the plugin.
>Click on ???
>Next you will be prompted with a login page. Enter your WordPress username and password and click on ???
I liked reading your content. Learned the details about WordPress themes, I also work with different WordPress themes. If you want you can visit my website.https://themeorbit.net/blog-magazine-wordpress-theme/
I read this post fully about the comparison of most recent and earlier technologies, it’s awesome article.
Hello there, I found your website via Google at the same time
as looking for a similar subject, your web site came up, it looks great.
I have bookmarked it in my google bookmarks.
Hello there, just changed into alert to your blog thru Google, and found
that it is really informative. I’m going to be careful for brussels.
I’ll be grateful should you proceed this in future. Many other folks might be
benefited out of your writing. Cheers!
I visited ѕeѵeraⅼ websites eccept the aᥙdio quality
for udio songs present at this web site is truly marvelous.
Amazing things here. I’m very happy to see your
article. Thank you so much and I am looking ahead to
toucch you. Will you pease drop me a mail?
This is the perfect blog for anyone who wishes to understand this topic.
You realize a whole lot its almost tough to
argue with you (not that I actually would want to…HaHa).
You definitely put a fresh spin on a subject that’s been discussed
for a long time. Excellent stuff, just excellent!
Heya i am for the primary time here. I found this board and
I in finding It truly useful & it helped me out a lot.
I hope to give something again and aid others like you aided me.