Create a beautifully structured, developer-first showcase directory for your WordPress® plugins, themes, and patterns - powered by GitHub.
Projects for WordPress® adds a custom post type (projects) and taxonomy (project-type) to your WordPress® admin, allowing you to:
- Add plugins, themes, or patterns as projects.
- Connect each project to a GitHub repository.
- Automatically fetch and display data like:
- Latest version
- Stars, forks, issues
- License and language
- Download counts
- Create a public download URL:
/download/ID/ - Track and sort download metrics
- Render archive and single views with theme fallbacks or built-in templates
- Customize display settings via a clean settings page
- Provide social sharing buttons using Tabler Icons
- Use built-in REST API endpoints for listing and querying project data
- Download the latest ZIP from the GitHub Releases page.
- Go to your WordPress® Dashboard → Plugins → Add New → Upload Plugin.
- Upload the ZIP and activate the plugin.
From robertdevore.com
- Visit the official plugin page: Projects for WordPress®.
- Download the ZIP.
- Install it via the WordPress® dashboard like above.
- In the WordPress® admin, go to Projects → Add New.
- Add your project title, description, and featured image.
- Select a Project Type: Plugin, Theme, or Pattern.
- In the sidebar, paste the GitHub Repository URL (e.g.,
https://github.com/username/repo). - Publish.
Each project automatically gets a unique download endpoint:
Example:
https://example.com/download/123
This URL fetches the latest .zip release from GitHub and increments the download count.
Navigate to Projects → Settings to configure:
- GitHub API Token – Recommended for authenticated requests (avoids GitHub rate limits).
- Telemetry – Toggle to help improve the plugin.
Enable/disable the following GitHub data in your project views:
- Version
- Last Updated
- License
- Language
- Downloads
- Stars / Forks / Issues
- GitHub Owner
Toggle components for the project archive view:
- Archive Title
- Project Title
- Project Excerpt
- Project Buttons
To connect a project to GitHub:
- Paste the full repo URL into the GitHub URL field when editing a Project.
- Make sure your GitHub repo has a release with a
.zipasset or a validzipball_url.
To avoid hitting rate limits or improve reliability:
- Go to GitHub → Settings → Developer Settings → Personal Access Tokens.
- Generate a token (no scopes required).
- Paste it into the settings screen under GitHub API Token.
When attaching the plugin to a GitHub release:
- Zip only the contents of the plugin folder, not the parent folder.
- Ensure
projects-for-wordpress.phpand/includes,/admin,/templates,/assetsare at the root level of the ZIP. - Name the ZIP clearly (e.g.
projects-for-wordpress-1.0.0.zip). - Go to your GitHub repo → Releases → New Release.
- Tag the release with the version number (e.g.,
1.0.0). - Upload your correctly structured ZIP as a release asset.
Your users will be redirected to this file when they use the /download/ endpoint.
GET /wp-json/projects/v1/projectsSupports optional query params:
pageper_page
GET /wp-json/projects/v1/popularReturns the most downloaded projects.
You can override the plugin templates in your theme:
single-projects.phparchive-projects.phptaxonomy-project-type.php
Just copy the templates from the plugin's /templates/ folder into your theme's root and customize.
Each project includes social sharing links for:
- Twitter/X
- All public-facing code is translation-ready.
- Full support for Full Site Editing (FSE) and Classic themes.
- REST API ready and easily extendable.
- Clean separation of concerns: CPT/taxonomy, settings, metaboxes, API, styling.
Have a feature request or bug report? Open an issue on GitHub or contribute via pull request.
Projects for WordPress® is licensed under the GNU GPL v2+.
Built and maintained by Robert DeVore.
Follow on Twitter or sponsor development on GitHub Sponsors.