Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan NowHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk12 min

How to Publish Your First WordPress Plugin (Complete 2026 Guide)

Learn the complete WordPress.org plugin publishing workflow, from testing and naming through readme validation, manual review, approval timing and Subversion releases.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

<?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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Open 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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

  1. 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.
  2. Open the Add Plugin submission page. Enter the final plugin name deliberately; this is the decision that fixes the slug and directory URL.
  3. Write a brief, accurate overview. Explain the plugin’s purpose, important services or requirements and anything a reviewer needs to understand the package.
  4. Upload the complete ZIP. Use the archive you tested on a clean WordPress site. It must be complete enough for manual upload and activation.
  5. Submit for review. WordPress.org manually reviews the plugin against its guidelines, code quality expectations and directory requirements.
  6. 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What 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.

  1. Read the repository instructions sent with approval. Use the assigned repository address and credentials or access method for your account.
  2. Prepare the release you want users to receive. Confirm that the version in the plugin header, the stable version in readme.txt and the tested ZIP all agree.
  3. 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.
  4. Check the generated directory page. Verify the name, description, installation instructions, metadata and release information as displayed to users.
  5. 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.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.txt explains 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.

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.