Good news, my plugin’s been approved and is live in the WordPress directory! If you need a way to collect emails without feeling sales-y, grab my Create Content Offers plugin here.
To celebrate, I’ve put together a few things that helped me get my plugin approved without any issues at all. All it took was a couple of days of waiting, some uploading and my plugin was ready to use for WordPress owners and marketers.
Creating the Plugin
There aren’t many rules you need to follow when coding your plugin. The directory allows everything from single file plugins to massive apps that need external APIs. That said, it does help to follow a few rules, both to get your plugin approved and to make your programming work a bit more sane.
Use WordPress core libraries if available (don’t add your own!)
If the library you use is in there, don’t call an external script but just enqueue the one that’s already inside WordPress. And since these libraries already implement many of the most common functions you need, consider using them instead of adding other libraries that do similar things. It makes your plugin look more consistent with the rest of WordPress, and you don’t need to babysit another piece of code if it updates or breaks in the future.
Only use code and assets that you have permission to use
Seems like a no-brainer but we often forget the stipulations of use for many of the extra code we add into our plugins. Not all the code you find in Github can be copy-pasted without attribution.
Similarly, make sure that if you do use third-party code like APIs or assets like images, give credit where credit is due. Or just exclude them and find something you can use freely.
Use WP_DEBUG to test your plugin extensively
I’ve now made it a habit to turn WP_DEBUG on when coding on my machine, instead of keeping it off to hide the notices and warnings. It can be annoying but it does catch a lot of the problems you might have when submitting the plugin to WordPress. At the very least, doing so made my plugin’s approval process go without a hitch, so I encourage you to do the same.
Don’t add links to the plugin user’s front-facing site
We all need backlinks, tracking and attribution for our work. But adding a link to the front end of a user’s site is explicitly forbidden if you want your plugin in the WordPress directory. Usually, these are “Powered by” links and similar things.
Yes, they check this and will reject your plugin. No, don’t try sneaking your links in.
But there is a way to add front-facing backlinks: have an option in the admin area that gets the user’s permission to turn it on. It has to be turned off by default though.
Updating Your Plugin’s Documentation
While our handy plugin template generator will address many of the issues below, it’s still worth your time to double check these just to make sure your plugin doesn’t get rejected.
Use a GPL v2 license
This is already what your template has so it shouldn’t pose a problem. But still, it pays to read the license itself so you know what you’re getting into.
For the most part, the template already takes care of the details of the header. By the way, this header shows the plugin info that your users see in their plugin list. So make it relevant if you don’t want them removing it because they don’t know what your plugin actually does. Go here to learn more about how to fill it up.
Fill out the README.txt completely, too
This is one part that needs your attention since the plugin generator doesn’t add much to it. The “readme” text file is what the plugin directory uses to build its description of your plugin, among other things. But often, plugin developers forget to add information here since it’s really not necessary as part of the approval process.
Since making the readme can be difficult, here are a few tools to help you out:
Adding Images for Your Plugin Page
While your plugin page doesn’t need to have images, it does make it prettier and sometimes the images also help people decide whether they will download your plugin or not. Here are some of the things you need to take note about images, taken from the plugin assets guide.
Screenshots should be named screenshot-1.png or screenshot-1.jpg
This gives users a glimpse of what your plugin looks like in their admin area as well as how it will change their site.
Name screenshots sequentially, like screenshot-1.jpg, screenshot-2.jpg, etc. You can upload either PNGs or JPGs of your screenshots.
In your readme is a section named screenshots. This is used to caption the screenshots you add. See the sample below.
Create a 128×128 pixel icon
The icon is what the user first sees when they search for plugins, so it pays to make this as memorable as possible. I prefer to make sure the icon is relevant to my plugin, like a checkbox in my case.
For you it can be your company logo, something free from the NounProject or make your own.
Create a 772×250 pixel banner
Make this attractive as possible, possibly adding some information in as well (but not too much). Some developers add contact details and their website here, though.
Personally, I prefer to add a screenshot here of what my plugin looks like as my draw for new users. You can use your logo, custom banners or even your Facebook cover photo if you want.
Submitting Your Plugin to WordPress
It’s funny that some people forget that you need an account to submit a plugin. After all, how will they reach you to say your plugin is approved?
You can use your existing account but if you’re like me, it’s probably an account you used for personal stuff like reviewing plugins or getting support.
I suggest making a new professional account for the plugin and registering here. This will make it easier to hand over support requests and customer question later on. Don’t forget to also edit the gravatar for that account so it has a relevant avatar and not just something autogenerated.
Choose your plugin slug carefully
It’s something repeated time and again in the plugin docs, so make sure that the plugin slug WordPress chooses is the right one. You can’t change this later (though you can change the name of your plugin).
Usually this slug is automatically generated from the title of your plugin, but if you reply to their first email and as long as the plugin has not yet been approved, you can choose another one that fits better.
Make sure the file you send is zipped and less than 25MB in size
Just like how we install zipped files in our WordPress sites. And I’m pretty sure that if you want to include a huge file with your plugin like a video, you can host that elsewhere and just link to it instead.
It usually takes a few days before you get word on whether your plugin is approved or not. In the meantime, try learning about Subversion (also called SVN) since that’s what you’ll be using to upload your plugin to the directory.
Here’s a guide from WordPress on how to use SVN.
PS: Don’t forget to put your images into the /assets folder.
More Plugin Submission Tips
If you need more guidance for submitting your plugin, here are a few other resources I found:
If you’d like to try out my plugin, you can download it here. Or read here to learn how and why I made it.
And if you want a handy way to follow all the tips above, just grab the checklist I made below!