The plugin generates posts/pages. Useful to generate millions of records in wp_posts table

Overview

KAGG Generator

The plugin generates posts/pages. Useful to generate millions of records in wp_posts table.

In WordPress development, sometimes it is needed to generate big databases with hundreds of thousands of posts/pages. Existing plugins can generate test content, but very slowly, with the usual rate of 1,000 posts per hour.

The Fast Post Generator plugin is able to generate millions of posts/pages in minutes.

Features

  • Plugin generates posts/pages with random content.

Installation

git clone https://github.com/kagg-design/kagg-fast-post-generator.git
cd kagg-fast-post-generator
composer install --no-dev

Development

git clone https://github.com/kagg-design/kagg-fast-post-generator.git
cd kagg-fast-post-generator
composer install

License

The WordPress Plugin KAGG Fast Post Generator is licensed under the GPL v2 or later.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2, as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

A copy of the license is included in the root of the plugin’s directory. The file is named LICENSE.

Credits

The current version of the KAGG Fast Post Generator was developed by KAGG Design.

Comments
  • unable to activate

    unable to activate

    When I try to activate your extension I've a fatal :

    ( ! ) Warning: require_once(/home/csn/Local Sites/wp59/app/public/wp-content/plugins/kagg-fast-post-generator-old/vendor/autoload.php): failed to open stream: No such file or directory in /home/csn/Local Sites/wp59/app/public/wp-content/plugins/kagg-fast-post-generator-old/plugin.php on line 59
    Call Stack
    #	Time	Memory	Function	Location
    1	0.0002	369424	{main}( )	.../plugins.php:0
    2	0.2076	14231576	plugin_sandbox_scrape( $plugin = 'kagg-fast-post-generator-old/plugin.php' )	.../plugins.php:192
    3	0.2077	14231904	include_once( '/home/csn/Local Sites/wp59/app/public/wp-content/plugins/kagg-fast-post-generator-old/plugin.php )	.../plugin.php:2288
    
    ( ! ) Fatal error: require_once(): Failed opening required '/home/csn/Local Sites/wp59/app/public/wp-content/plugins/kagg-fast-post-generator-old/vendor/autoload.php' (include_path='.:/usr/share/php:/www/wp-content/pear') in /home/csn/Local Sites/wp59/app/public/wp-content/plugins/kagg-fast-post-generator-old/plugin.php on line 59
    Call Stack
    #	Time	Memory	Function	Location
    1	0.0002	369424	{main}( )	.../plugins.php:0
    2	0.2076	14231576	plugin_sandbox_scrape( $plugin = 'kagg-fast-post-generator-old/plugin.php' )	.../plugins.php:192
    3	0.2077	14231904	include_once( '/home/csn/Local Sites/wp59/app/public/wp-content/plugins/kagg-fast-post-generator-old/plugin.php )	.../plugin.php:2288
    
    

    It seem that vendor/autoload.php does not exist

    Thank you

    opened by lmwp 3
  • Randomize dates

    Randomize dates

    I created a site, generated 100 posts, 20 users and 1000 comments. So everything was generated in December 2021 and December 2022.

    Here is an example for comments: image

    All comments were generated either today, or a year ago on 2021/12/13.

    Posts: image

    It would really nice if the posts/comments could be spread across the past year, for example.

    opened by slaFFik 2
  • Make `mysqli.allow_local_infile` warning persistent

    Make `mysqli.allow_local_infile` warning persistent

    When the plugin is activated for the first time, it will check for allow_local_infile setting is On.

    On a page reload the warning is gone. This is causing couple problems:

    1. Low experienced site owner may be confused because they could not remember the setting name if they want to send it to server/hosting tech support.
    2. Someone might think they did perform the correct configuration and the warning isn't displayed any more because everything is ok (while it's still not ok)

    Could we keep the warning visible until the mysqli.allow_local_infile is properly set up? It doesn't look redundant since the plugin could not operate normally before that at all.

    opened by cadic 2
  • Comments by logged out users

    Comments by logged out users

    Right now all the generated comments are for the users that exist on a site. It would be super handy if it was possible to allow comments generated by site visitors not users (so basically by logged out users). Maybe even define the % (so by setting 10% - this number of comments will be generated by logged in users, everything else - by logged-out users).

    opened by slaFFik 1
  • SHOW VARIABLES query runs on every admin page

    SHOW VARIABLES query runs on every admin page

    This query SHOW VARIABLES LIKE 'secure_file_priv' is run on every page inside the wp-admin area.

    I think it makes more sense to run it only on the "KAGG Fast Post Generator" page.

    opened by slaFFik 1
  • Nested comments

    Nested comments

    This PR adds nested comments.

    Nested comments could only be created if adding in steps. Every next step will consider existing comments as parent. If all comments are added within single step, there will be mo child comments.

    Possible Drawbacks

    With the current approach, generator will add 50% child comments with each new chunk. It is causing some problems:

    Comments are not distributing equally to posts. With every new chunk, posts which already have comments will have higher chance to receive new comment (as child comment) then posts which doesn't have much comments yet. And this chance is growing with every new chunk.

    It may cause the situation when some posts have thousands of comment and others don't have comments at all:

    Test setup:

    • Posts already in database 10000
    • Generate 500000 comments (expecting to get about 500 comments per post)
    • Chunk size 50000 (means 10 runs)

    The result:

    • Most commented post: 9800 comments
    • Less commented post: 0 comments

    Alternative design

    To fix the distribution of comments, we may need make the NESTED_PERCENTAGE a variable thing, to reduce the percentage of child comments with every new step. Need to be discussed and more tests...

    opened by cadic 1
  • Set a current datetime instead of the empty value (0000-00-00 ...)

    Set a current datetime instead of the empty value (0000-00-00 ...)

    At least, in my case, it's more comfortable to have a current date in post_date, because right now I test a logic in my plugin that relies on post_date and even "today" value is enough.

    opened by versusbassz 0
  • Set CSV-file permissions to 0666

    Set CSV-file permissions to 0666

    If MySQL and PHP are in different Docker containers and have different uid/gid the MySQL one doesn't see a target CSV-file, because the file is created with 0600 permissions (in my case)

    opened by versusbassz 0
Owner
Igor at KAGG Design
The sole holder of the gold WordPress badge on StackOverflow RU. WordPress Core Contributor. Team lead at Awesome Motive.
Igor at KAGG Design
Stores the customer_user for WooCommerce orders and subscriptions in the post_author column of posts table.

Post Author Optimization for WooCommerce Requires PHP: 7.0 WP requires at least: 5.7 WP tested up to: 5.7 WC requires at least: 5.6.0 WC tested up to:

Devin Price 9 Apr 2, 2022
Coder Metabox for WordPress - Create Pages, Posts Custom Meta Fields options

Coder Metabox for WordPress Coder Metabox for WordPress - Create Pages, Posts Custom Meta Fields options. Step 1 call coder-metabox.php file in functi

Ashikur Rahman 3 Feb 19, 2022
Sync Wordpress Pages and Posts (even custom post types + fields) from static Markdown + YAML files

Sync Markdown Files to WordPress Posts and Pages Static site generators let you use a revision-controlled tree of markdown files to make a site, but d

null 26 Sep 26, 2022
An opinionated extension package for Laravel Orchid to extend its table handling capabilities, and some further useful helper methods.

OrchidTables An opinionated extension package for Laravel Orchid to extend its table handling capabilities, and some further useful helper methods. In

null 25 Dec 22, 2022
Run your WP site on github pages, php innovation award winner https://www.phpclasses.org/package/12091-PHP-Make-a-WordPress-site-run-on-GitHub-pages.html

Gitpress Run wordpress directly on github pages Gitpress won the innovation award for may 2021 Read more about this https://naveen17797.github.io/gitp

naveen 13 Nov 18, 2022
A Magento 2 module that allows for creating discrete PDP (Product Detail Pages) page layouts for customers landing on the site from a PPC (Pay Per Click) link/ad by allowing routing to the same pages using a `/ppc/` prefix in the URL path.

A Magento 2 module that allows for creating discrete PDP (Product Detail Pages) page layouts for customers landing on the site from a PPC (Pay Per Click) link/ad by allowing routing to the same pages using a `/ppc/` prefix in the URL path.

null 16 Nov 11, 2022
QR Tips is a Wordpress plugin that generates a QR code for sending a tip via MultiSafepay

QR Tips is a Wordpress plugin that generates a QR code for sending a tip via MultiSafepay

Robin de Laater 1 Mar 25, 2022
A useful PocketMine-MP plugin that allows you to create crates in-game!

ComplexCrates A useful PocketMine-MP plugin that allows you to create crates in-game! Commands Main command: /crate Sub commands: create

Oğuzhan 8 Aug 26, 2021
A collection of useful codes and utilities for WordPress plugin development..

WordPress Utils A collection of useful codes and utilities for WordPress plugin development. These simplifies common tasks and promote code reusabilit

weDevs 5 Jun 9, 2023
This Kirby V3 Plugin brings snippets and blueprints together in one place. It includes useful tools that completely changing the way you work with Kirby: Fast and well organized.

Kirby Components Overview Do you love to make awesome projects with Kirby CMS? Do you also find it difficult to switch between snippets and blueprints

Roman Gsponer 6 May 31, 2023
Re-skinning BotCloaker enables you to add a SMART button at the end of all posts on your blog.

Re-skinning BotCloaker Wordpress Plugin Re-skinning BotCloaker enables you to add a SMART button at the end of all posts on your blog. Re-skinning Bot

Mohammed cha 120 Nov 11, 2022
A hacky PHP script to download posts, images, videos and framework grading from Parent Zone

ParentZoneDownloader A hacky PHP script to download posts, images, videos and framework grading from Parent Zone Pre-Requisites Tested on PHP 7.4, but

null 2 Sep 6, 2021
This is a class that allows you to import posts from Wix into WordPress.

Wix Posts to WordPress This is a class that allows you to import posts from Wix into WordPress. Requirements Please make sure you have the following i

Basework 16 Sep 8, 2022
This plugin allows you to create many-to-many relationships between pages in Kirby and synchronizes them on both sides.

Kirby 3 Many To Many Field This plugin allows you to create many-to-many relationships between pages in Kirby.

Jonas Holfeld 41 Nov 19, 2022
Pat if amp - ⚡ A Textpattern Conditional Plugin for Google's Accelerated Mobile Pages Project (AMP)

pat_if_amp Download | Packagist AMP pages for Textpattern CMS. This conditional tag examines the URL of the current page and determines if the URL end

Patrick LEFEVRE 4 Dec 15, 2019
WooCommerce Empty Cart Button plugin helps you to add Empty Cart button to WooCommerce Pages/Sections using Shortcode only.

WooCommerce Empty Cart Button plugin helps you to add Empty Cart button to WooCommerce Pages/Sections using Shortcode only. How to use? Download the p

Katr 2 Sep 24, 2022
🔍 Generates database queries based on one unique string

?? Laravel Search String Generates database queries based on one unique string using a simple and customizable syntax. Introduction Laravel Search Str

Loris Leiva 735 Dec 30, 2022
This component changes the way Magento 2 generates Interceptor classes

ABOUT This component changes the way Magento 2 generates Interceptor classes (a mechanism that allows plugins to work together). Instead of generating

Creatuity Corp. 64 Dec 5, 2022
Generates a static website of metal music events in Leipzig

About EN: This projects generates a static website of metal music events in Leipzig (Ger). DE: Dieses Projekt erstellt einen Webkalender zu diversen M

null 3 Dec 15, 2022