Skip to content

A robust random post generator for WP CLI which supports multisite, post types, post counts, taxonomies, terms, term counts and featured images. Complete with a cleanup command to undo it all!

Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

WP CLI Random Posts Generator

This WP CLI posts generator, unlike the core generator in WP CLI, supports the following:

  • Terms
  • Term Counts
  • Taxonomies
  • Post Types
  • Post Counts
  • Post Author
  • Post Status
  • Featured Images ( thanks to )
  • Featured Image Types ( thanks to )
  • Image Download sizes
  • Multi-site ( specify site id if necessary )

NEW - using wp jw-random cleanup <options> this script now cleans up after itself.

Thanks to for providing the API for the content - Also thanks to @fzaninotto for the Faker library.

What this does NOT do

Currently this CLI command does not support meta-data, mainly due to the amount of commands you would need to run for large sites. Still a great script if you need to generate some placeholder posts fast, especially with featured images and terms.


Installing the random post generator is SUPER easy, for the latest and greatest, do the following:

  • wp package install jaywood/jw-wpcli-random-posts:dev-master

If you'd like a specific version, say 2.0, it's this simple:

  • wp package install jaywood/jw-wpcli-random-posts:2.0

Sample Commands

Generate 50 posts, no feature image

Possibly the simplest way to use the generator.

  • wp jw-random generate 50

Create 10 posts with featured business images for an author

First find the author you want to attach the Post to

  • wp user list

Now you know the author ID just use the --author flag like so:

  • wp jw-random generate 10 --author=13 --featured-image --img-type=business

The author field also supports slug ( login ), and email.

Create 10 posts with categories, tags, and featured images ( the usual stuff )

( --term-count tells the script to also add 15 terms to each taxonomy )

  • wp jw-random generate 10 --featured-image --taxonomies=category,post_tag --term-count=15

Clean up posts, terms, and media that was generated

( --force-delete permanently deletes posts and media instead of just trashing them )

  • wp jw-random cleanup --tax=post_tag,category --force-delete


In the interest of keeping this readme slim, all options have been moved to the Wiki.



  • A bit of house cleaning.
  • Moved generate and cleanup commands to separate files.
  • Renamed a lot of CLI arguments to make more sense.
  • Now using the Faker library instead of relying on API calls.
  • Author now supports email, slug ( login ), or ID.
  • Removed the media flag, no sense in having it if post type is empty it defaults to all.
  • Removed the --site option, use --url instead.
  • Made use of md5_file() to prevent image duplication within the media library.


  • Removed some CLI default values causing the script to complain when it shouldn't have.
  • Cleaned up get_post_content() a bit.
  • Ignore some PHPCS complaints about @unlink
  • Small message updates.
  • Some PHPCS fixes ( alignment, assignments, etc.. )


  • Changed ipsum generator to, fixes #11
  • Update API url for random word getter ( setgetgo )
  • Remove dependancy on exif PHP library.


  • Fixed - #6 - Error message duplication
  • Fixed - #10 - Removed a lot of log messages, added progress bars in their place.
  • Changed - posts command to generate - makes more sense.
  • Remove the flag --n for specfying post count, make post count required positional argument instead.
  • Significant readme updates.


  • Fixed possible bug with post_type_exists checks on multisite installs.
  • Added cleanup method to allow users to undo/remove posts, terms, and media that was added via this generator. This is not backwards compatible, with earlier versions, sorry guys!
  • Added post_status flag for generating posts, you can now set your own status.
    Note: status does not validate, so you can technically set this to anything, its up to you as a developer to expose custom statuses in the admin.
  • Added taxonomy validation: Script will now validate if a taxonomy is even registered, and allow you to continue if you want.


Initial Release


A robust random post generator for WP CLI which supports multisite, post types, post counts, taxonomies, terms, term counts and featured images. Complete with a cleanup command to undo it all!




No packages published


You can’t perform that action at this time.