Plugin Scaffold

Last updatedView as Markdown

This page orients you to the Linchpin WordPress plugin standard and routes you to instantiate a plugin, apply an overlay, or maintain the template.

Linchpin WordPress standard

Plugin Scaffold

A CI-green WordPress plugin that is also the house template. Instantiate a new plugin from a pinned ref, then replace this identity.

github.com/repo
docs/
index.mdquickstart.mdapi.md
DocsPresskeeps one source
For readersWordPress PagesNative Gutenberg
For agents/llms.txtExact page.md routes
Reviewable pull requestWordPress edits return to GitHub

Choose a path

What are you doing?

Start with the workflow that matches the job.

What this is

Plugin Scaffold is the house WordPress plugin standard. The checkout is a real plugin: it boots on plugins_loaded, registers activation and deactivation hooks, and stays CI-green. It is also the tree linchpin plugin scaffold copies.

Current release: 0.1.0. Requires PHP 8.3 and WordPress 6.9. License: GPL-2.0-or-later.

Flow

How a new plugin is made

3 relationships
Overlays are applied by the scaffold command, not at runtime.

What ships in a checkout

plugin-scaffold/ File tree
  • plugin-scaffold.php
  • uninstall.php
  • includes/
    • functions.php
    • Core/
      • Bootstrap.php
    • Controller/
      • Controller_Interface.php
      • Install.php
    • Helper/
      • Files.php
  • src/
    • admin/
      • index.js
  • overlays/
    • blocks/
    • wporg/
    • self-hosted/
  • scripts/
    • build.sh
  • tests/
Overlays are not loaded when this plugin runs.

Read the PHP API for the public classes, functions, constants, and hooks. Read scripts for every Composer and npm command this repository defines.

Requirements

Reference

Runtime and toolchain

Values taken from the plugin header, composer.json, package.json, and .nvmrc.
3 fields
PHP string required
composer.json require.php and the plugin header Requires PHP field.
WordPress string required
Plugin header Requires at least and Tested up to. phpcs.xml.dist sets minimum_wp_version to 6.9.
Node string required
package.json engines.node is >=24.13.0. .nvmrc pins 24.13.0. CI reads .nvmrc.

Next

Have a question about this page?

Linchpin assistant

Was this helpful?