The No Signal Media backend campaign generator is now working as a real proof of concept.
This build adds a private editorial system where one Campaign can generate multiple related Campaign Posts from a single AI request. The goal is to create structured media inventory, not auto-published filler. The system is designed for review first, publishing later.
What was built:
Created the Campaign custom post type.
Created the Campaign Post custom post type.
Added ACF fields for campaign setup:
Subject
Modifier Set
Post Count
Start Date
Posting Rhythm
Generation Status
Batch ID
Raw AI JSON
Added ACF fields for generated campaign posts:
Parent Campaign
Post Order
Scheduled Date
Image Prompt
Image URL
Small Essay
Social Caption
Next Post Teaser
Approval Status
Source URL
Added campaign-tools.php inside the child theme inc folder.
Loaded campaign-tools.php safely from functions.php.
Added a Campaign Posts review box to the Campaign edit screen.
Added a local test generator that creates three test Campaign Posts without using OpenAI.
Confirmed the backend relationship works:
Campaign Posts attach to the correct parent Campaign.
Posts sort by campaign order.
Scheduled dates display cleanly.
Approval status displays correctly.
Added a real AI Campaign Generator button.
Confirmed one OpenAI call can generate multiple structured Campaign Posts.
Confirmed the raw AI response is saved to the Campaign for debugging and recovery.
Added a Campaign Post Preview meta box so generated content can be reviewed without opening every post individually.
First real AI generation test:
Campaign:
Modern Folk Revival: Beginner Learning Series
Generated posts:
What People Mean When They Say “Folk Revival”
From Roots Music to Indie Folk
Why Folk Songs Keep Returning to Place and Memory
How Radio Kept the Revival Moving
What the Modern Folk Revival Looks Like Now
Result:
The core backend workflow is proven.
One Campaign can now create a scheduled batch of AI-generated Campaign Posts from one API call. The system keeps everything private and reviewable. Nothing is auto-published. This creates a safer editorial layer where AI can help generate structured drafts, but the site owner keeps control.
Current status:
Working MVP.
Next logical steps:
Add Approve / Reject controls to each Campaign Post.
Add a “Create Public Posts” action for approved Campaign Posts.
Add stronger prompt controls for tone, platform, length, visual style, and campaign type.
Add optional cleanup controls for deleting test batches.
Later, connect approved Campaign Posts to public posts, Learn content, social exports, ticker items, or radio scripts.
Notes:
This is an important architecture milestone. The Campaign is now the unit of generation, not the individual post. That keeps cost lower, improves sequence quality, and makes the system feel more editorial than random.