10,000+
July 24, 2026
June 17, 2014
When creating a new theme or plugin, you always need to create a custom data set to test whether it’s working as expected – or not. As developers ourselves, we’ve run into this problem quite often.
The goal of FakerPress is to fill this gap, offering a solution for both developers and WordPress users.
Note: This plugin requires PHP 8.1 or higher to be activated.
Checkout our GitHub Repository
During the development process, a WordPress developer will often need to fill up an empty theme or test site with placeholder content. Doing so manually can be time consuming. FakerPress allows you to speed up this process.
FakerPress creates randomly generated attachments as Featured Images for your WordPress test content.
FakerPress enables you to generate custom placeholder meta information for Users, Posts, Terms, and Comments with 20 types of data.
After testing is complete, you can delete any FakerPress-generated dummy content all at once.
When creating placeholder posts, FakerPress creates randomized HTML to allow you to catch bugs that an XML import may not.
FakerPress also allows you to output images to your HTML tests, enabling testing for placeholder media.
FakerPress includes examples of real browser data with generated comments, allowing for more robust testing.
FakerPress includes custom settings to determine the quantity and type of terms generated for test content. The plugin then handles randomization to generate terms within those parameters for tailored test data.
Manually generated data for test profiles might not catch edge cases. With FakerPress, randomized data fills up relevant fields with randomized information for more robust testing.
FakerPress now includes a comprehensive REST API for programmatic content generation. All modules support REST endpoints with batching capabilities for large-scale generation. Full OpenAPI documentation is available at /wp-json/fakerpress/v1/docs.
Create realistic image attachments with customizable dimensions, multiple image providers (Placehold.co, Lorem Picsum), and automatic generation of alt text, captions, and descriptions. All images include proper attribution – Lorem Picsum images credit the original Unsplash photographers.
To translate FakerPress into your language, please visit the project in GlotPress. You can find additional support and best practices through your locale’s Translation Team.
Great! There are several ways you can get involved to help make FakerPress better:
Thank you for wanting to make FakerPress better for everyone! We salute you.
No installation instructions provided.
FakerPress is a plugin that creates placeholder content on WordPress sites. Geared towards developers, FakerPress is designed to help anyone use dummy content to test their WordPress website via randomly generated data such as posts, pages, images, and comments.
FakerPress can generate the following types of content:
Yes. There are a number of settings you can customize and change when generating placeholder content with FakerPress.
With FakerPress, each type of content is generated individually via the related administration page in your WordPress Dashboard under the FakerPress Settings. Each type of content includes options for how many items you would like to generate, as well as related customizations, such as:
FakerPress pulls from a handful of sources, primarily leveraging data from the PHP Library called Faker. Faker uses a random number generator to select the data used for posts, terms, and all text-based data. For attachments, FakerPress pulls images from two sources: Lorem Picsum and Placehold.co.
No, though there are plans to add as an optional feature in the future.
When finished with testing, you can remove all content generated by FakerPress via the FakerPress > Settings page in your WordPress Dashboard. Here, follow the instructions on the page to confirm and then delete the relevant content.
You can report any issues or feature requests via the WordPress Plugin Forums or via GitHub.
For help with or questions about FakerPress, visit the WordPress Plugin Forums.
Using null as an array offset is deprecated PHP 8.1+ notices logged from WordPress core’s Requests/Iri.php when fetching external images; the Attachment module now routes download_url() and the Lorem Picsum metadata request through helpers that suppress the core deprecation and restore the previous error-reporting level. [#230]roles value over the singular role alias’s default, and the User module falls back to the site’s configured default role when none is requested. [#229]Term::fetch()/delete() were reading the singular fakerpress.module_flag.term option while generation wrote the plural fakerpress.module_flag.terms, so no terms were ever collected for deletion. [#228]taxonomy alias’s category default overwrite the admin form’s plural taxonomies value, so choosing Tags now creates tags instead of categories. [#227]explode(): Passing null to parameter #2 PHP 8.1+ deprecation when generating posts with a sparse payload; the Post module now defaults every splittable request value (comment status, author, post types, HTML tags, post parent, image origins) to an empty string before splitting. [#224]Call to undefined function FakerPress\Module\media_handle_sideload()); WordPress 7.0 preloads wp-admin/includes/file.php, so the single download_url() guard skipped media.php. Each admin include is now guarded by the function it actually provides. [#221]Chronos class in the WP_Meta provider; calling meta_type_date no longer fatals with Class "FakerPress\Provider\Chronos" not found. [#209]post_types value is no longer silently overwritten by the singular alias’s default of post. [#210]Undefined property: stdClass::$terms warning emitted by WP_Post::tax_input under PHP 8.x when the taxonomy config does not include a terms key.POST /fakerpress/v1/posts/generate now documents post_types (array or comma-separated string) as the canonical parameter; the existing post_type singular alias is preserved for backwards compatibility.meta_type_date, sparse tax_input configs, and every shape of post_types payload (CSV, array, singular alias, plural-wins-over-default)./wp-json/fakerpress/v1/docspost_type), Terms (taxonomy), Users (role), and Comments (comment_status)post_status parameter to be passed through REST API instead of hardcoding to publishcomment_status values (hold, approve, spam, trash) to WordPress comment_approved format$metas foreach crash in Term module when no meta is provided via REST APIname_size in Term module to use provider default instead of generating empty term namesdownload_url() stream modeArgumentCountErrorcakephp/chronos to 3.1.08.1+8.4+ problems specially arounnd incompatibility with Chronos and notices.1.24+._load_textdomain_just_in_time() noticescount() applying to a String instead of an Array for PHP 8.1+fakerphp/faker to 1.24lucatume/di52 to 0.4Carbon to use Chronos.$min param on Meta Value generation for PHP 8.1+. Props @kubiq0.6.2. props @helgathevikingfakerphp/faker to version 1.23.lucatume/di52 and nesbot/carbon Strauss dependencies, which prevents conflicts with other plugins.lucatume/di52 to version 3.3.1.fakerphp/faker to version 1.21.nesbot/carbon to version 2.66.fzaninotto/Faker to fakerphp/Faker/.unlink() call for attachments props @wpuzmancomposer.json and using it’s autoloader.src folder.[] array syntax.vendor folder.fp_array_get params with it’s usage props @henrikwirth.fakerpress.module.attachment.download_url_timeout defaulting to 10 seconds per attachment.file_get_contents it was making peoples servers hang to long — Thanks @bilimokurfile_get_contents — Thanks @lazlo-tothpost_excerpt for Posts (how I forgot that is beyond me) — Thanks @njbarrett_encloseme and _pingme for FakerPress generated Postsfakerpress.module.meta.value and fakerpress.module.meta.{$key}.value – Thanks @Mte90post_statuswp_remote_get to fetch external images — Thanks revaxartspost_parent column — Reported by Bruno DCcomment_status on Posts (#26)admin_title been overwritten (#14)| Version | Download | Type |
|---|---|---|
| 0.9.2 | Download | Stable |
| 0.9.1 | Download | Stable |
| 0.9.0 | Download | Stable |
| 0.8.0 | Download | Stable |
| 0.7.2 | Download | Stable |
| 0.7.1 | Download | Stable |
| 0.7.0 | Download | Stable |
| 0.6.6 | Download | Stable |
| 0.6.5 | Download | Stable |
| 0.6.4 | Download | Stable |
| 0.6.3 | Download | Stable |
| 0.6.2 | Download | Stable |
| 0.6.1 | Download | Stable |
| 0.5.3 | Download | Stable |
| 0.5.2 | Download | Stable |
| 0.1.3 | Download | Stable |
| 0.1.2 | Download | Stable |
| 0.1.1 | Download | Stable |
| 0.1.0 | Download | Stable |
| Development | Download | Trunk |