Prerequisites

Before getting started, make sure you’re familiar with how WordPress plugins work. This guide doesn’t cover how to build a plugin from scratch, it focuses on adapting an existing one to work with wp-content.io.

Learn WordPress Developer basis

Know the Header Requirements

Plugin management

To simplify the deployment of updates and make it as seamless as possible, the plugin’s release is based on the information provided in the plugin’s own file.

You simply need to publish a zip file of your plugin (the folder name inside the zip should match the plugin’s slug). If the slug does not exist in your organization, the plugin will be created; otherwise, a new version will be created.

When you publish an update, the version number need to be unique and greater than the latest version.

File Header requirement

This is the minimum header of your plugin file :

my-plugin/my-plugin.php
<?php
/**
 * Plugin Name: My Plugin
 * Version: 1.0.4
 * Author: Your company name
 * Update URI: https://registry.wp-content.io
 */

The name, version and author properties will be used to publish your plugin data. The property Update URI is mandatory because it will indicate WordPress to connect wp-content.io repository instead of official repository.

Zip structure

Here is an example of minimal plugin structure :

my-plugin/
  └── my-plugin.php

Enhance your plugin details view

The following header show you available customization from the plugin file :

my-plugin/my-plugin.php
<?php
/**
 * Plugin Name: My Plugin
 * Plugin URI:
 * Description: Fake plugin
 * Version: 1.0.4
 * Author: Happy Monkey
 * Author URI: https://mkey.fr/
 * Requires at least: 6.4
 * Requires PHP: 8.1
 * Update URI: https://registry.wp-content.io
 */

All assets (icon and banner) can be customized from the dashboard.

Other plugin’s preview tab

In WordPress, when you click “See details” link on a plugin card, a preview is shown with some tabs :

By default, only “Description” tab is shown and use the short plugin description (from main file header comment). If you want to customize tabs, you can add some files (in Markdown format) at your plugin root :

FilenameCorresponding tab
README.mdDescription
INSTALL.mdInstallation
FAQ.mdFAQ

Example of zip structure :

my-plugin/
  ├── my-plugin.php
  ├── FAQ.md
  ├── INSTALL.md
  └── README.md

Changelog tab

The changelog is automatically generated from your plugin update history. You can manage your version (add release notes or delete a version) from your dashboard.