PHPackages                             phpnomad/wp-plugin-recipes - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. phpnomad/wp-plugin-recipes

ActiveLibrary[CLI &amp; Console](/categories/cli)

phpnomad/wp-plugin-recipes
==========================

Scaffolding recipes for PHPNomad WordPress plugins. Speaks WordPress vocabulary and produces idiomatic PHPNomad structure. Consumed by phpnomad/cli via composer-based kit discovery.

1.0.0(1mo ago)0101MITGo Template

Since May 1Pushed 1mo agoCompare

[ Source](https://github.com/phpnomad/wp-plugin-recipes)[ Packagist](https://packagist.org/packages/phpnomad/wp-plugin-recipes)[ RSS](/packages/phpnomad-wp-plugin-recipes/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (1)Versions (2)Used By (1)

PHPNomad WordPress Plugin Recipes
=================================

[](#phpnomad-wordpress-plugin-recipes)

Scaffolding recipes that speak WordPress vocabulary and produce idiomatic PHPNomad structure. Consumed by `phpnomad/cli` via composer-based kit discovery.

Installation
------------

[](#installation)

Usually you don't install this directly. It's a transitive dependency of [`phpnomad/wp-plugin-starter`](https://github.com/phpnomad/wp-plugin-starter):

```
composer create-project phpnomad/wp-plugin-starter my-plugin
```

The starter depends on this kit, so the recipes are immediately available inside the new project.

To install into an existing project:

```
composer require phpnomad/wp-plugin-recipes --dev
```

Recipes provided
----------------

[](#recipes-provided)

### Bootstrap

[](#bootstrap)

RecipePurpose`phpnomad/wp-plugin`Bootstrap a brand-new WordPress plugin: entry file, Application class, root initializer, composer.json, tests, configuration### Storage trilogies

[](#storage-trilogies)

Each WordPress storage primitive comes in three variants — register only, handler-against-existing-datastore, and full-stack composite — mirroring the elevator pattern from `phpnomad/database-datastore` in core-recipes.

Just registerHandler against existing datastoreFull-stack composite`phpnomad/cpt``phpnomad/cpt-handler``phpnomad/cpt-datastore``phpnomad/taxonomy``phpnomad/taxonomy-handler``phpnomad/taxonomy-datastore``phpnomad/option``phpnomad/option-provider``phpnomad/setting``phpnomad/meta``phpnomad/meta-provider``phpnomad/attribute`CPT and taxonomy recipes implement all four datastore handler interfaces (`Datastore`, `DatastoreHasPrimaryKey`, `DatastoreHasWhere`, `DatastoreHasCounts`) using WordPress core APIs. Option and meta recipes are simpler — the "handler" tier is a typed accessor service rather than a full CRUD adapter.

### Auth and admin surfaces

[](#auth-and-admin-surfaces)

RecipePurpose`phpnomad/role`Add a WordPress user role on Ready (idempotent)`phpnomad/admin-page`Top-level wp-admin menu page with capability gating`phpnomad/admin-notice`Banner-style admin notice with conditional render`phpnomad/admin-bar-item`Quick-access node in the WordPress admin bar`phpnomad/shortcode`Register a `[shortcode]` tag with a render handler### Scheduling and assets

[](#scheduling-and-assets)

RecipePurpose`phpnomad/cron-job`Schedule and handle a recurring WP-Cron job`phpnomad/scripts-bundle`Enqueue a JS bundle (front-end and/or admin), reads `.asset.php` for deps`phpnomad/styles-bundle`Enqueue a CSS bundle (front-end and/or admin)All registration recipes scaffold a class implementing `CanHandle` that responds to PHPNomad's `Ready` event, mapped into the initializer's `getListeners()`. Composites pass vars through to child recipes.

Run `vendor/bin/phpnomad recipes:list --all=1` inside a project to see the full list with summaries.

Bootstrap workflow
------------------

[](#bootstrap-workflow)

```
composer create-project phpnomad/wp-plugin-starter my-plugin
cd my-plugin
vendor/bin/phpnomad make --from=phpnomad/wp-plugin '{
  "pluginName": "My Plugin",
  "description": "What my plugin does.",
  "vendor": "acme",
  "package": "my-plugin",
  "namespace": "AcmePlugin",
  "textDomain": "my-plugin",
  "authorName": "Your Name",
  "authorEmail": "you@example.com",
  "authorUrl": ""
}'
```

After the bootstrap recipe runs, you have a working PHPNomad WordPress plugin. From there, use the rest of PHPNomad's recipes to add functionality.

Writing your own kit
--------------------

[](#writing-your-own-kit)

This kit is also a reference implementation for writing your own. The pattern:

1. Create a composer package
2. In its `composer.json`, declare `extra.phpnomad.recipes` and `extra.phpnomad.templates` pointing to directories in your package
3. Drop JSON recipe files in the recipes directory and `.tpl` template files in the templates directory
4. Reference recipes from other kits (this one references `phpnomad/core-recipes`) via composer require, not via custom recipe-level declarations

Recipes inside your kit are referenced as `/`.

License
-------

[](#license)

MIT

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance92

Actively maintained with recent releases

Popularity6

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity33

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

39d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/9e6206223bd6f2a57b8ac80605b1b5c3521faaec18ad3f20f25fb728a9a13784?d=identicon)[tstandiford](/maintainers/tstandiford)

---

Top Contributors

[![alexstandiford](https://avatars.githubusercontent.com/u/8210827?v=4)](https://github.com/alexstandiford "alexstandiford (5 commits)")

### Embed Badge

![Health badge](/badges/phpnomad-wp-plugin-recipes/health.svg)

```
[![Health](https://phpackages.com/badges/phpnomad-wp-plugin-recipes/health.svg)](https://phpackages.com/packages/phpnomad-wp-plugin-recipes)
```

###  Alternatives

[seld/cli-prompt

Allows you to prompt for user input on the command line, and optionally hide the characters they type

24726.4M22](/packages/seld-cli-prompt)[illuminate/console

The Illuminate Console package.

13045.3M6.1k](/packages/illuminate-console)[php-tui/php-tui

Comprehensive TUI library heavily influenced by Ratatui

596920.8k12](/packages/php-tui-php-tui)[styleci/cli

The CLI tool for StyleCI

70464.1k9](/packages/styleci-cli)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
