Documentation
Overview
SeedPress is a WordPress developer tool that generates realistic fake content for local or staging environments. Every generation job is driven batch-by-batch from the browser via a REST endpoint — no PHP timeouts, and the progress bar updates after every single batch.
The plugin ships with a modern React admin UI at Tools → SeedPress. Each content type has its own tab. Configure the options, click "Generate", and watch the real-time progress bar tick up.
How it works
- You submit a job from the admin UI (or WP-CLI).
- SeedPress stores the job parameters in a custom database table.
- The browser calls
POST /wp-json/seedpress/v1/jobs/{id}/tickto run one batch synchronously and returns the updated state. - The progress bar updates after every batch — no polling delay. Steps in a Recipe chain instantly when one completes.
- When the job completes, every generated item carries the private meta key
_seedpress_generatedso it can be identified and safely removed later.
Requirements
| Requirement | Minimum |
|---|---|
| WordPress | 6.0+ |
| PHP | 8.1+ |
| MySQL / MariaDB | 5.7+ / 10.4+ |
| WP-Cron | Optional — fallback if tab closes mid-run |
Content Generators
Each generator lives in its own tab in the SeedPress admin UI. All generators share a common Count field (max 200 for Free, 10,000 for Pro) and a Run in background checkbox (always on for large jobs).
Posts
Generates WordPress posts (or any registered custom post type) with realistic titles, multi-paragraph body content powered by Faker, excerpts, publish dates, and authorship.
Options
| Option | Description | Default |
|---|---|---|
| Post type | Any registered CPT | post |
| Post status | publish / draft / pending | publish |
| Count | Number of posts to generate | 10 |
| With featured image | Attach image from selected provider | on |
| Assign terms | Randomly assign existing taxonomy terms | on |
| Date range | Random date between start and end | last 90 days |
Users
Creates WordPress users with realistic first/last names, unique email addresses, usernames, and biographical descriptions. Avatars are optionally seeded using the configured image provider.
Options
| Option | Description | Default |
|---|---|---|
| Role | Any registered WP role | subscriber |
| Count | Number of users to create | 10 |
| With avatar | Upload avatar from image provider | off |
Terms
Generates taxonomy terms (categories, tags, or any custom taxonomy) with realistic names, slugs, and optional descriptions. Useful for building out a full content hierarchy before generating posts.
Options
| Option | Description | Default |
|---|---|---|
| Taxonomy | Any registered taxonomy | category |
| Count | Number of terms to create | 10 |
| With description | Add a Faker paragraph as description | off |
Comments
Generates approved comments on existing posts. Comment authors can be existing WordPress users or anonymous guest commenters. Nested (reply) comments are supported.
Options
| Option | Description | Default |
|---|---|---|
| Post type | Only target posts of this type | any |
| Count | Number of comments to create | 10 |
| Author type | Registered user or guest | guest |
| Allow nesting | Randomly create reply threads | on |
WooCommerce Products
ProGenerates WooCommerce simple products with realistic names, descriptions, prices, sale prices, SKUs, and stock quantities. Requires WooCommerce to be active.
Options
| Option | Description | Default |
|---|---|---|
| Count | Number of products to create | 10 |
| Price range | Min / max price in store currency | $4.99 – $199 |
| With sale price | Randomly apply a discount | on |
| With stock | Set a random in-stock quantity | on |
| With product image | Attach featured image | on |
Events Calendar Events
ProGenerates events for The Events Calendar plugin. Events include a title, description, start/end date-times, venue, and organiser. Requires The Events Calendar to be active.
Options
| Option | Description | Default |
|---|---|---|
| Count | Number of events | 10 |
| Date range | Events start within this window | next 90 days |
| Duration | Random between min / max hours | 1–4 hours |
Image Providers
SeedPress can attach images to posts, users, and products using external image services. Select your preferred provider in the Settings tab. The active provider is used for all generators automatically.
| Provider | Description | Plan |
|---|---|---|
| Lorem Picsum | Random high-quality photos. No API key needed. Fast CDN. | Free |
| LoremFlickr | Keyword-based photos from Flickr's CC-licensed pool. | Pro |
| Placehold.co | Placeholder images with customisable size, colour, and text. | Pro |
| Unsplash | Premium editorial photography. Requires a free Unsplash API key. | Pro |
Seed Recipes
ProSeed Recipes let you chain multiple generation steps into a single, repeatable workflow. A recipe defines an ordered list of generator steps — for example: create categories first, then create posts assigned to those categories, then add comments to the posts.
SeedPress ships with four built-in presets:
Blog Launch
Creates 10 categories, 20 tags, 5 authors, 80 posts with content and featured images assigned to terms, and 200 comments. Great for bootstrapping a blog-style site.
Portfolio
Creates 6 categories, 30 pages with rich content, and 10 media attachments. A clean starting point for portfolio and agency sites.
WooCommerce Store
Creates 8 product categories, 60 simple WooCommerce products, and 20 customer accounts. Requires WooCommerce to be active.
Minimal Dev
A lightweight fixture set for local development: 5 categories, 20 posts, and 40 comments. Fast to run and easy to clean up.
Custom recipes can be created in the Recipes tab. Each step lets you pick a generator type, configure its options, and set an order. Recipes are stored in the database and can be shared across team members.
WP-CLI Commands
Pro
SeedPress Pro registers a wp seedpress command group. Unlike the admin UI (which drives generation from the browser), WP-CLI runs generation synchronously in the terminal and reports a real-time progress bar. Ideal for CI/CD pipelines and local development scripts.
Available commands
Generate content
# Generate posts
wp seedpress generate post <count> [--post-type=<type>] [--status=<status>] [--with-content] [--assign-terms] [--with-image]
# Generate users
wp seedpress generate user <count> [--role=<role>]
# Generate taxonomy terms
wp seedpress generate term <count> [--taxonomy=<taxonomy>]
# Generate comments
wp seedpress generate comment <count> [--post-type=<type>]
# Generate WooCommerce products (Pro)
wp seedpress generate product <count> [--with-image] [--with-sale]
# Generate Events Calendar events (Pro)
wp seedpress generate event <count> Run a Seed Recipe
wp seedpress recipe run <recipe-slug>
wp seedpress recipe list Cleanup
# Delete all seeded content (all types)
wp seedpress cleanup all --yes
# Delete only seeded posts
wp seedpress cleanup post --yes
# Per-job rollback is available in the admin Cleanup tab (not WP-CLI) Example: Full blog seed
# 1. Create taxonomy terms
wp seedpress generate term 20 --taxonomy=category
# 2. Generate 500 posts with images and term assignments
wp seedpress generate post 500 --with-content --assign-terms --with-image
# 3. Add comments
wp seedpress generate comment 200
# Done!
✓ 20 categories, 500 posts, 200 comments created in 42.1s Custom Fields (ACF & MetaBox)
ProWhen SeedPress Pro detects Advanced Custom Fields (ACF) or MetaBox installed and active, it automatically reads every registered field group and populates custom fields with realistic data that matches the field type.
Supported ACF field types
Supported MetaBox field types
SEO Integrations
ProSeedPress Pro auto-detects Yoast SEO and RankMath. When either plugin is active, every generated post automatically receives a focus keyword, an SEO title, and a meta description — written by Faker to be plausible lorem-ipsum SEO copy.
Yoast SEO
| Field | Meta key |
|---|---|
| Focus keyword | _yoast_wpseo_focuskw |
| SEO title | _yoast_wpseo_title |
| Meta description | _yoast_wpseo_metadesc |
RankMath
| Field | Meta key |
|---|---|
| Focus keyword | rank_math_focus_keyword |
| SEO title | rank_math_title |
| Meta description | rank_math_description |
No configuration needed — detection is automatic based on active plugins.
Cleanup & Uninstall
Every item created by SeedPress is tagged with the private post meta key
_seedpress_generated (value: 1).
The cleanup tool targets only items with this key — your real content is never affected.
Cleanup tab (admin UI)
The Cleanup tab in the SeedPress admin lists all seeded item counts by type. You can delete all seeded content at once, or delete by content type individually. A confirmation modal protects against accidental deletion.
Rollback last job
On the Cleanup tab, recent completed jobs list a Rollback action. From 1.4.2 onward, each job records the IDs of items it created; rollback deletes only those items (still flagged with _seedpress_generated), leaving earlier seeded content intact. A confirmation modal is required. Jobs started before ID tracking have no tracked IDs — use type-wide Cleanup for those.
Uninstalling SeedPress
Deactivating the plugin leaves all seeded data in place (it's just WordPress posts and users). To perform a full cleanup before uninstalling:
- Go to Tools → SeedPress → Cleanup.
- Click "Delete all seeded content" and confirm.
- Deactivate and delete the plugin from Plugins → Installed Plugins.
The plugin's custom database table (wp_seedpress_jobs) is dropped automatically on uninstall.