For developers

A repeatable foundation for bespoke block themes.

Keep WordPress structure explicit, keep application logic in PHP, and give every project a layout your team can recognise.

porter-theme

main

porter/
  blocks/
    components/
  config/
    blocks.json
    porter.json
    posttypes.json
    taxonomies.json
  inc/
parts/
templates/
theme.json

The working model

Configuration for repeatable structure. PHP for project logic.

PorterWP reads the theme’s project definitions and connects them to native WordPress APIs. It does not generate a design, prescribe the frontend or replace the judgement of the development team.

DEFINE

Model the project

Describe post types, taxonomies, ACF option pages, block folders, theme support and assets in small configuration files.

BUILD

Develop components

Keep an ACF block’s metadata, local fields, rendering class, PHP template and styling together. Add scripts only when the component needs them.

EXTEND

Add project behaviour

Use the theme’s PHP include paths and documented hooks for custom rules, Query Loop changes and integration code.

SHIP

Validate the contract

Validate strict configuration, build theme assets, test editor and frontend requests, and activate a PorterWP licence for each production domain.

A component-shaped block

Keep the moving parts together.

A PorterWP block folder is deliberately readable. The starter opts into ACF Blocks v3 and places local field JSON beside the block that uses it.

ACF Pro 6.6 or newer is required for the starter’s ACF Blocks v3 scaffold. Projects that do not use ACF-backed features can continue to use Porter’s other theme tools.

sample-block/
  acf-json/
    group_sample.json
  assets/
    css/block.css
    js/block.js
  block.json
  class.php
  template.php

Built for extension

Start with WordPress, then add only what the project needs.

Query Loop helpers

Apply theme-specific query rules to an identified core Query Loop or build on the premium public filter system without replacing the block’s query globally.

Browse the hook reference

Theme lifecycle helpers

Use project PHP for rewrite rules, content status behaviour, template helpers and other site decisions. PorterWP provides stable integration points and retains existing template and subclass APIs.

Review the current release notes

Start from a known structure

Clone the starter, review every project setting, then make it yours.