The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →To publish a WordPress plugin in the official directory, finish and test the plugin, choose a name whose slug you can keep permanently, prepare a valid readme.txt and plugin header, submit a complete ZIP for manual review, answer any reviewer questions, and—after approval—upload the release to the assigned WordPress.org Subversion repository. Publication is not complete until the approved code and readme are stored there.
Antihost offers managed WordPress hosting with free migration, one-click staging and a 14-day free trial.
This guide follows that process in order, including the files to prepare, directory rules that commonly stop approval, realistic review timing, the post-approval release workflow, and when private distribution may be a better fit.
As an Amazon Associate I earn from qualifying purchases.
Free tools Windows power users keep installed
One-click scans. No signup required.
What publishing to WordPress.org actually means
The WordPress.org Plugins Directory is both a discovery channel and a hosting service. It gives users a familiar way to find, install and update a plugin, while providing the project with directory statistics, reviews and a support location. In return, your code must meet the directory’s licensing, security, privacy, trademark and functionality requirements, and you must use the repository workflow WordPress.org assigns after approval.
WordPress.org describes the directory as “the easiest way for potential users to download and install your plugin.” It also makes an important distinction: “The WordPress Plugin Directory is a hosting site, not a listing site.” A page that merely links to a download elsewhere is not a substitute for putting the approved plugin in the supplied repository.
#1 Best Overall
Before you submit: finish the product, not just the ZIP
Submission should be the last step of development, not a request for permission to continue building. The detailed guidelines say that “a complete plugin must be available at the time of submission.” A reviewer should be able to install the ZIP, activate it and use its advertised functionality without waiting for missing files, a private build or an unfinished service.
Test on more than your development machine
The Plugin Handbook recommends testing “once and test again” because plugins encounter different WordPress versions, configurations, PHP environments, hosting controls and combinations of other plugins. Test the complete ZIP you intend to submit, rather than a source folder that contains files accidentally omitted from the archive.
- Install the ZIP on a clean WordPress site and activate it from the Plugins screen.
- Exercise every user-facing feature described in the readme, including first-run setup and failure paths.
- Deactivate and reactivate the plugin, then confirm that settings and stored data behave as documented.
- Test with common configuration differences such as a fresh site, an existing site with content and a restricted hosting environment.
- Check that uninstall or removal behavior matches what your documentation says.
- Review PHP, JavaScript, CSS and image assets for missing files, warnings, fatal errors and unsafe input handling.
- Repeat the test after creating the final ZIP so the archive—not merely your working directory—is known to work.
If your plugin calls an external service or API, test the complete setup, including credentials, consent, rate limits, outages and the behavior users see when the service is unavailable. Confirm that the service’s terms permit your use and that your plugin’s documentation explains any account or configuration requirement.
Check the name before you create the permanent URL
Choose a distinctive plugin name and check it for trademark conflicts before submission. The name submitted on the Add Plugin page determines the directory slug, which determines the plugin URL. The URL cannot be changed after submission, although the display name can change later. A rushed name can therefore leave you with a permanent, confusing or legally risky address.
Keep the public name, main plugin-file header and readme.txt consistent enough that reviewers and users can identify the project. Do not use another project’s trademark, imply an affiliation you do not have or choose a name designed to capture searches for an unrelated product.
Use a monitored account and the right email
You need a WordPress.org account to submit. Use an email address that someone actively monitors because review questions, correction requests and repository notices are sent there. A company project should use an official company address rather than an abandoned personal mailbox; losing access can make routine maintenance unnecessarily difficult.
Recommended Free Tools
Files WordPress.org expects
Prepare two things together: the complete plugin ZIP for review and the documentation that will describe the published project.
The main plugin file and its header
Your main PHP file needs a compliant WordPress plugin header. At minimum, the header must contain the plugin name. A practical header also identifies the version and other project metadata you intend to maintain consistently with the readme.
Rank #2
<?php
/**
* Plugin Name: Site Notes Toolkit
* Description: Adds private notes to selected administration screens.
* Version: 1.0.0
* License: GPL-2.0-or-later
*/
The example name is illustrative; select your own distinctive name and verify it before submission. Keep the header in the file that WordPress can recognize as the plugin’s entry point. A header in an unused file will not make the plugin discoverable.
The readme.txt
readme.txt is the directory’s standard reference point. Write it for a person deciding whether to install the plugin and for a user troubleshooting it after installation. Include:
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
- A concise description of what the plugin does and who it is for.
- Installation and configuration instructions, including any required account, service or API setup.
- Support channels and clear boundaries about what support you provide.
- Directory metadata and release information that match the plugin version.
- Any important limitations, compatibility notes, permissions or data-handling behavior.
Run the readme through the WordPress.org readme validator before submitting. Fix validator errors and then read the rendered content yourself: a file can be technically valid while still being unclear, incomplete or inconsistent with the plugin.
A minimal illustrative structure might look like this:
=== Site Notes Toolkit ===
Contributors: exampleauthor
Tags: notes, administration
Requires at least: 6.0
Tested up to: 6.6
Stable tag: 1.0.0
License: GPL-2.0-or-later
== Description ==
Adds private notes to selected administration screens.
== Installation ==
1. Upload the ZIP through Plugins > Add New Plugin > Upload Plugin.
2. Activate the plugin.
3. Open Settings > Site Notes to configure it.
== Support ==
Describe the supported configuration and where users can report problems.
== Changelog ==
= 1.0.0 =
* Initial release.
Use metadata that is true for your actual plugin. Do not copy the example’s version, compatibility values or contributor name into a real submission without checking them.
Make the ZIP uploadable as-is
The submitted ZIP should be the same complete package a reviewer could manually upload through the WordPress administration interface. Include the plugin’s PHP, JavaScript, CSS, images, translations, bundled libraries and documentation required for operation. Remove development secrets, local configuration files, credentials, test dumps and unrelated build artifacts.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errorsOpen the archive and verify its top-level structure before uploading. A common practical failure is a nested archive—such as a folder containing another folder containing the plugin files—so test the exact ZIP through the Add New Plugin upload screen on a clean site.
Licensing, trademarks, security and services
Directory eligibility is broader than “the code runs.” The guidelines require GPL or another GPL-compatible license for code, data, images and included third-party libraries. You are responsible for confirming the license of every bundled component and for complying with restrictions attached to external services and APIs.
Audit every included component
- Record the license and attribution requirements for libraries, fonts, images, icons, sample data and code copied into the plugin.
- Make sure the combined distribution is compatible with the license you declare.
- Include required notices and do not remove copyright or attribution information.
- Review updates to bundled dependencies so a later release does not introduce an incompatible license.
Protect users and their data
Reviewers expect a secure plugin. Sanitize and validate input, escape output for its context, enforce capability checks and use nonces where appropriate. Avoid exposing administrative actions to unauthenticated visitors, and do not collect or transmit data without a clear reason and adequate disclosure.
If the plugin sends data to a third-party service, explain what is sent, why it is needed, where it goes and how users configure or disable that behavior. Your service provider’s terms must permit the integration. A privacy statement cannot cure an integration that violates the provider’s terms or silently transmits information users did not expect to leave their site.
Do not artificially cripple built-in functionality
The developer information rules prohibit artificial restrictions on functionality that WordPress already provides. The directory is also not a place for unauthorized public-site links. A plugin may explain its service or offer an appropriately disclosed external option, but it should not hijack a site’s public output, inject unrelated links or force a user through an unrelated promotion to access the advertised feature.
Submit the plugin for manual review
- Create or sign in to your WordPress.org account. Confirm that the account email is monitored and that a company submission uses an official company address.
- Open the Add Plugin submission page. Enter the final plugin name deliberately; this is the decision that fixes the slug and directory URL.
- Write a brief, accurate overview. Explain the plugin’s purpose, important services or requirements and anything a reviewer needs to understand the package.
- Upload the complete ZIP. Use the archive you tested on a clean WordPress site. It must be complete enough for manual upload and activation.
- Submit for review. WordPress.org manually reviews the plugin against its guidelines, code quality expectations and directory requirements.
- Watch the submission email and respond precisely. If the reviewer identifies a problem, correct it in the plugin, documentation or licensing information, rebuild and retest the ZIP, then reply with the requested details.
Do not submit a placeholder while promising to add the real feature later. The directory’s requirement that a complete plugin be available at submission means the review package must represent a usable release.
How long approval takes
WordPress.org publishes estimates rather than a guaranteed deadline. The Plugin Handbook says queued submissions are reviewed within 14 business days. The current Add Plugin page says WordPress.org attempts review within five business days and notes that timing depends on complexity. These statements describe targets, not promises of approval by a fixed date.
Plan for the longer window, keep your email available and allow time for one or more correction rounds. A complex integration, licensing question, security issue or incomplete submission can require more interaction than a small self-contained plugin. Do not announce a launch date that assumes the shorter estimate will be met.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallCrashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWhat happens after approval
Approval gives you access to a WordPress.org Subversion repository. The directory expects the approved code and readme.txt to be uploaded there; it is not enough to leave the files on your own server or treat the directory page as a catalog entry.
- Read the repository instructions sent with approval. Use the assigned repository address and credentials or access method for your account.
- Prepare the release you want users to receive. Confirm that the version in the plugin header, the stable version in
readme.txtand the tested ZIP all agree. - Upload the plugin and readme through Subversion. Commit the complete approved project according to the repository instructions. Keep required assets and documentation in the locations WordPress.org specifies.
- Check the generated directory page. Verify the name, description, installation instructions, metadata and release information as displayed to users.
- Test installation from the directory. Install the published package on a clean site and confirm that the directory version behaves like the ZIP you reviewed locally.
Future releases use the same discipline: update the code and readme together, test the release archive, document the changes and commit the intended version to the repository. A directory listing that advertises one version while the readme or code identifies another creates avoidable support problems.
Rank #4
WordPress.org directory or private distribution?
The official directory is not the only way to deliver a plugin. The right choice depends on whether discovery, automatic updates and community support are worth the compliance and repository obligations.
| Decision area | WordPress.org directory | Private distribution |
|---|---|---|
| Review and compliance | Manual review and continuing adherence to directory guidelines, licensing, security, privacy and trademark rules. | You control acceptance, but you remain responsible for legal, security and compatibility obligations. |
| Discovery and updates | Users can discover and install through WordPress.org, with the directory’s update and distribution mechanisms. | You must provide your own discovery, download, update and notification process. |
| Release workflow | After approval, releases are uploaded to the assigned Subversion repository with the plugin and readme. | You choose the host, package format and release system. |
| Support and statistics | The directory provides a public support location, reviews and statistics. | You choose the support channel and must build or operate any statistics system. |
| Licensing and naming | GPL or GPL-compatible licensing applies to code, data, images and bundled libraries; trademark and project-name rules apply. | Your distribution still needs legally compatible licenses and a non-infringing name, even without directory review. |
| Monetization control | You must follow directory rules and may not impose artificial restrictions on built-in functionality or add unauthorized public-site links. | You have more control over packaging and commercial terms, subject to WordPress and third-party licenses and service agreements. |
Many developers publish a genuinely useful free core in the directory and distribute a separate service or premium product elsewhere, but each component must still respect its licenses, privacy disclosures and service terms. Do not design a directory plugin whose advertised feature is intentionally missing until the user pays or signs up for an unrelated service.
Common rejection causes and fixes
Incomplete or nonfunctional submission
Symptom: The reviewer cannot reproduce the advertised feature, required files are missing, or setup depends on a private build.
Fix: Rebuild from a clean checkout, create the final ZIP, install it on a clean WordPress site and test every documented path before resubmitting.
Readme and code disagree
Symptom: The readme describes settings, services or versions that the submitted plugin does not contain.
Fix: Treat the readme as release documentation. Update installation, configuration, support and release information at the same time as the code, then run the validator.
License or attribution gap
Symptom: A bundled library, image or font has an unknown or incompatible license.
Fix: Identify the component’s license, satisfy its attribution terms, replace it if the terms are incompatible and ensure the complete distribution remains GPL-compatible.
Best Value
Trademark or slug problem
Symptom: The proposed name resembles another project or the submitted slug is not the one you intended to keep.
Fix: Resolve the naming issue before submission. The directory URL cannot be changed after submission, so do not rely on a later display-name edit to repair a poor slug.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Privacy, security or external-service concern
Symptom: The plugin sends data unexpectedly, lacks authorization checks or depends on an API whose terms do not permit the integration.
Fix: Minimize collection, disclose transmission and configuration, secure every action, review the provider’s terms and test outage and invalid-credential behavior before submitting again.
Repository treated as optional
Symptom: The project has an approved directory page but its files remain only on an external download site.
Fix: Use the Subversion access WordPress.org supplied and commit the approved plugin and readme.txt. The directory is a hosting site, so repository storage is part of publication.
A practical pre-submission checklist
- The plugin is complete, functional and tested from the exact ZIP you will upload.
- The name is distinctive, reviewed for trademark conflicts and acceptable as a permanent slug.
- Your WordPress.org account uses a monitored email; a company project uses an official company address.
- The main plugin file has a compliant header containing at least the plugin name.
readme.txtexplains the purpose, installation, configuration, required services, support boundaries and release information.- The readme passes the WordPress.org validator and matches the code and version.
- All code, data, images and third-party libraries have GPL or GPL-compatible licensing.
- Service and API terms permit the integration, and privacy and data-transfer behavior are disclosed.
- Input validation, output escaping, capability checks and nonce protections have been reviewed.
- The ZIP contains everything needed for manual upload and no secrets or unrelated build files.
- You have time for a manual review and correction rounds rather than assuming a guaranteed approval date.
Further learning
If you want a dedicated reference while building, search for WordPress plugin development book and verify the current edition and listing before buying. A commonly cited resource is Professional WordPress: Design and Development, 3rd edition. Treat any book as a development aid; the current WordPress.org handbook and directory guidelines control submission decisions.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




