Ready to get started?Download WordPress

Plugin Directory

Developer FAQ

In what directory should I put my files?

Put your files directly in the trunk/ directory of your repository. Whenever you release a new version, tag that release by copying the current trunk revision to a new subdirectory of the tags/ directory.

Make sure you update trunk/readme.txt to reflect the new stable tag.

Screenshot image files should ideally be put in the assets/ directory (which you'll likely need to create) in the root of your SVN checkout. This will be on the same level as tags/ and trunk/, for example. Alternatively, screenshots can be put in the directory of the tagged stable release (trunk/ or the stable tag directory) (the old way). The assets/ directory is preferred since the screenshots won't be packaged in the plugin's release zip files, saving unnecessary bloat for each download. Learn more from the feature's announcement post.

Can’t I put my files in a subdirectory of trunk/?

You can, but it’s silly. The .zip file the WordPress.org Plugin Directory creates will automatically wrap all your files inside a directory, so there is no need to put your files into a subdirectory.

If you have complicated plugin with lots of files, you can of course organize them into subdirectories, but the readme file and the root plugin file should go straight into trunk/.

How should I name my tags (a.k.a. releases)?

Your subversion tags should look like version numbers. Specifically, they should only contain numbers and periods. 2.8.4 is a good lookin’ tag, my neato releaso is a bad lookin’ tag. Inflexible? Yup. Easy to handle and sanitize? You bet!

Note that we’re talking about subversion tags here, not readme.txt tags. Those can obviously be any words you like.

Can I specify what version of my plugin the WordPress.org Plugin Directory should use?

Yes, by specifying the Stable Tag field in your trunk directory’s readme file.

Where does the WordPress.org Plugin Directory get its data?

From the information you specify in the plugin file and in the readme file, and from the subversion repository itself.

Author field from the plugin header and Contributors field from the readme file.
Version field from the plugin header.
Tags (as in categories)
Tags field from the readme file.
Plugin Name
The Plugin Name from the readme file falling back on the Plugin Name specified in the plugin header.
Author and Plugin Homepages
The Author URI and Plugin URI fields of the plugin header.
Last updated time
Time of last check in to the appropriate directory (trunk/ or the stable tag directory) after a version number change.
Creation time
Time of first check in.

I made some changes to my SVN repository. How long will it take for the WordPress.org Plugin Directory to reflect those changes?

The WordPress.org Plugin Directory updates every few minutes, however it may take longer for your changes to appear, depending on how deep the queue is.

Can I include SVN externals in my plugin?

Nope, sorry. You can add svn externals to your repository, but they won’t get added to the downloadable zip file.

How do I make one of those cool banners for my plugin page?

Start by creating an assets/ directory in the root of your SVN checkout. This will be on the same level as tags/ and trunk/, for example.

Inside that assets/ directory, you can make a file named "banner-772x250.png" or "banner-772x250.jpg". The image must be exactly 772 pixels wide and 250 pixels tall. No GIFs.

To support high-DPI (aka "retina") displays, you can additionally make a file named "banner-1544x500.png" or "banner-1544x500.jpg". The image must be exactly 1544 pixels wide and 500 pixels tall. No GIFs. This image, if present, will only be served when the website detects that the viewing browser is on a high-DPI display. Read this feature's announcement post for more details and special notes about creating this image.

After you check in your new banner(s), it will appear the next time the plugin refreshes itself in the directory. This may take a few minutes.

For development and testing, you can add a URL parameter to your plugin's URL of "?banner_url=A_LINK_TO_YOUR_IMAGE" to preview what the page will look like with your own image. This will only work with your own plugins, you can not use this parameter on anybody else's plugins.