The Ultimate Guide to Publishing WordPress Plugins
Recently, I published a WordPress plugin called Vector Search With Typesense. This plugin enables vector search on your WordPress site using Typesense and the OpenAI embedding model. You can read more about the plugin on the official WordPress Plugin Repository.
In this post, I’ll share the process of publishing or hosting your own WordPress plugin in the WordPress Plugin Repository and share a little on how it has changed over the years.
First and foremost, I have been developing WP plugins since 2015. Initially, I created private plugins for clients while working at a web agency. It wasn’t until 2017 that I began publishing simple plugins to the WordPress repository to learn the process and gain firsthand experience. There were many new things I had to prepare, including:
- GPL License
- Write up via readme.txt
- Header requirement
- SVN Client (Similar to github)
- Unique prefix
And the list goes on, you can read more at https://developer.wordpress.org/plugins/plugin-basics/
Yet, the hard part isn’t the preparation. The real challenge is getting the plugin reviewed, making tweaks, and going through the review process repeatedly. It’s similar to submitting an assignment or getting a project proposal approved by upper management.
The Process
1. Ideation Stage
The first part of plugin development is having a clear idea of what you want to create and why. Rather than checking out market demand, my focus is on solving a problem I personally encounter or adding features that are missing in existing products or plugins. This approach ensures that my efforts are directed toward creating something truly useful for myself (and hopefully others).
Ideation involves a few critical steps. First, you need to clearly define the problem you want to solve. This requires a deep understanding of the issue and how it affects your workflow or user experience. Next, identify any existing data or information that you can leverage. This could be previous work, open-source resources, or documentation that can help you build your solution more efficiently.
2. Development Stage
The development process can range from simple to complex, or fall somewhere in between. With over 10 years of experience in WordPress, including plugin and theme development, I have a deep understanding of the CMS and its interconnected components.
When I first started, I created functions without considering how they would integrate with other plugins. However, I’ve learned that knowing how to integrate with other plugins can save you a lot of time in the long run. This knowledge not only streamlines development but also enhances the compatibility and functionality of your plugin within the WordPress ecosystem.
3. Submission Stage
Here comes the most unproductive part of the plugin journey: getting your plugin reviewed and approved by the WordPress team. The review process can take a long time, depending on the number of plugins in the queue. Ever since last year, the number of submissions has spiked, and it can now take 30 days or more for your plugin to get its first review.
Sometimes, the review arrives when you’re swamped with other commitments, so it takes time to address the issues, adding even more time to the process. The longer you take to respond, the longer it will take to get your plugin published. It’s like waiting for a project proposal to be approved, with delays causing further delays. But this step is essential to ensure the quality and compatibility of your plugin within the WordPress ecosystem.
How to publish your WordPress Plugin to Repository much faster?
1. Plugin Check
In order to speed up the reviewing process, the WordPress Team often recommend Plugin Check. This plugin will check whether your plugin meets the required standards for the WordPress.org plugin directory.
2. Keep your plugin simple
Let’s face it, if you could code quickly, make it error-free, user-friendly, and 100% functional, you’d definitely do it. However, realistically, mistakes happenāeven AI isn’t perfect. The more you code, the more chances there are for errors and UI/UX issues that need fixing. That’s why I highly recommend keeping your plugin simple, as long as it meets the bare minimum requirements.
For example, if you want to create a plugin that dynamically displays EdX courses in WordPress, just focus on the essentials: a settings page and a shortcode. That’s it. You can add additional features and tweaks after it’s published or make a paid plugin to sell as an upgrade. Keep it simple for the first version, and build from there.
3. Use plugin boilerplate
When I first started, I missed a lot of crucial details like the readme file, stable version, and more. I wasted a lot of time on the initial reviews, only to realize that the issue was simply a lack of information in the readme.txt. Thankfully, there are plugin boilerplates available online. One of my favorites is Plugin Plate. Itās an incredibly easy way to write a plugin without having to remember all the minor details, such as tags, tested up to, contributors, and more. You just select the module, fill in the text fields provided, and itās all done for you.
Below is a screenshot that I am referring to.
What’s next?
The next step, after your plugin has been reviewed and approved, is to upload it via Subversion (SVN). There are several SVN clients available. My personal favorite is SmartSVN due to its simplicity, but it is expensive. Since my plugin is free and I do not update or publish my plugins daily, the cost is not justified for my needs. Alternatively you can just upload using command prompt or terminal in Mac. I only did it once and eventually I went for SnailSVN. SnailSVN is less user-friendly than SmartSVN but it does what it needs to do. It is free for 1 project (or in ‘Working Copy’ in their term). So in order to use it for free, I have to delete the existing project and add the project that I want to push to the repository.
Conclusion
Publishing a WordPress plugin can be a rewarding experience, but it definitely comes with its challenges. Remember to keep your plugin simple and focus on solving a real problem or filling a gap. Understand how to integrate with other plugins to save time and enhance functionality. Use tools like Plugin Plate to streamline the preparation process. And brace yourself for the submission stageāit’s a waiting game, but it’s crucial for ensuring the quality and compatibility of your plugin.
Through all the ups and downs, the key is to stay patient and keep improving. The process may be tedious, but the satisfaction of seeing your plugin live and helping others is worth it. Happy coding, and good luck with your plugin journey!
This wraps up my insights and tips from my plugin development journey. Stay tuned for more updates and new plugins in the future. Cheers!