WP Manifestindependent plugin directory
manifest / developer / art-fake-content-creator

Art Fake Content Creator

Плагин генерации демо контента через терминал WP CLI. Подходит для разработки, демонстраций, тестирования тем и плагинов.

by Artem Abramovich, Campusboy · github.com/artikus11/art-fake-content-creator

2stars
12release downloads
≈10active sites
0forks

Install

The author publishes release zips, so WP-CLI can install straight from GitHub:

wp plugin install https://github.com/artikus11/art-fake-content-creator/releases/download/1.0.2/art-fake-content-creator.zip

Readme

Art Fake Content Creator

Плагин генерации демо контента через терминал WP CLI. Подходит для разработки, демонстраций, тестирования тем и плагинов.

Требуется PHP 8.0+, WordPress 6.0+, WP CLI.

Возможности

  • Создание и удаление фейковых записей, страниц, товаров WooCommerce, изображений и таксономий.
  • Поддержка профилей: настрой свои наборы данных (названия, описания, изображения).
  • Гибкие команды: создавай только нужное, с нужными параметрами.
  • Прогресс-бар, статистика и время выполнения.
  • Расширяемая архитектура — легко добавлять новые сущности.

Установка

  1. Штатным способом через админку.
    • Скачиваем релиз
    • В админке Плагины → Добавить плагин → Кнопка "Загрузить плагин"
  2. Клон с GitHub
     git clone https://github.com/your-repo/art-fake-content-creator.git wp-content/plugins/art-fake-content-creator
  3. Установка с релиза
    wp plugin install https://github.com/artikus11/art-fake-content-creator/releases/latest/download/art-fake-content-creator.zip --activate
  4. Обновление с релиза через WP CLI
    wp plugin install https://github.com/artikus11/art-fake-content-creator/releases/latest/download/art-fake-content-creator.zip --force

Профили

Профили хранятся в папке wp-content/plugins/art-fake-content-creator/config/. В подпапках находяться тематические профили (промышленность, мода, одежда, косметика и тд)

config/
├── default/
│   ├── titles.json
│   ├── descriptions.json
│   ├── short-descriptions.json
│   ├── images.json
│   └── taxonomies.json
├── cosmetics/
│   └── ... (переопределённые данные)
└── industrial/
    └── ...

Создать свой профиль

Скопируй папку /config/default/ переименуй. Или cp -r config/default config/my-theme-demo Отредактируй файлы (titles.json, images.json и др.).

Потом использовать wp fcc post create --profile=my-theme-demo --count=5

Поддерживаемые сущности

  • product - Требует Woocommerce. Поддержка simple, variable, атрибутов
  • image - Загрузка с внешних URL
  • taxonomy - Поддержка любых такс указанных в профиле
  • attributes - Требует Woocommerce

Команды

Флаги

Флаг Описание
--profile=<name> Использовать профиль из /config/<name>/
--count=<n> Количество объектов (где применимо, используется при создании сущностей: товары, записи, пользователи и тд)
--type=simple,variable Для товаров: тип создания
--seed При создании товаров — создать атрибуты, категории и т.д.
--tax=<names> Указать список таксономий: product_cat,post_tag
--attr-to-use=<сounts> Количество используемых атрибуто при создании товаров. Для вариативных товаров будет использоваться не более 5.

Общий формат:

wp fcc <entity> <action> [options]

Создать изображения

wp fcc image create --profile=cosmetics

Создать атрибуты

wp fcc attribute create --profile=industrial

Создать таксономии

# Все таксы из профиля
wp fcc taxonomy create

# Только определённые
wp fcc taxonomy create --tax=product_cat,product_brand

Создать товары WooCommerce

# Простые товары
wp fcc product create --count=5 --type=simple

# Вариативные товары
wp fcc product create --count=3 --type=variable --seed

# Вариативные и простые товары 
wp fcc product create --count=3 --type=variable,simple --seed

# Вариативные и простые товары, с разным количеством атрибутов
wp fcc product create --count=10 --type=simple --profile=industrial --seed --attr-to-use=0,-1

При указании флага --seed при создании товаров будут созданы сопутсвующие сущбности: изображения, атрибуты, таксономии если их еще нет на сайте

Удаление

# Удалить товары
wp fcc product delete --force

# Удалить таксы
wp fcc taxonomy delete --tax=product_cat,product_brand

# Удалить картинки
wp fcc image delete

# Удалить атрибуты
wp fcc attribute delete

Пример: запуск

# 1. Создать атрибуты и термины
wp fcc attribute create --profile=cosmetics

# 2. Создать категории и теги
wp fcc taxonomy create --tax=product_cat,product_tag --profile=cosmetics

# 3. Добавить изображения
wp fcc image create --profile=cosmetics

# 4. Создать 10 вариативных и 10 простых товаров
wp fcc product create --count=10 --type=variable,simple --seed --profile=cosmetics

Все фейковые объекты помечаются метой _created_for_fake_content.

Разработка

Плагин построен на модульной архитектуре:

  • Команды: src/CLI/Commands/
  • Менеджеры: src/Managers/
  • Конфиги: config/
  • Реестр сущностей: Services/EntityTypeRegistry.php

Через реестр регистрция команды для новой сущности происходит автоматически

Добавить новую сущность

Реестр сущностей: Services/EntityTypeRegistry.php метод register добавляем новую сущьность в формате

'mytype'  => [
    'label'     => 'Моя сущность', // название сущности
    'config'    => 'mytypes', // навзание профиля, из которого будут браться данные, если требуется
    'available' => true, // проверка на зависимсоть, если требуется, например нужен какой-нибудь активный плагин
    'service'   => MyTypeManager::class, // обработчика команд
    'command'   => MyTypeCommand::class, // класс команд
],

Создаем обработчик команд в папке src/CLI/Commands

namespace Art\FakeContent\CLI\Commands;

class MyTypeCommand extends BaseCommand {

    protected function get_entity_type_key(): string {

        return 'mytype';
    }


    protected function get_label_output_create(): string {

        return 'создание новой сущности';
    }


    protected function get_label_output_delete(): string {

        return 'удаление новой сущности';
    }
}

Создаем менеджер в папке src/Services/Managers

<?php

namespace Art\FakeContent\Services\Managers;

use Art\FakeContent\Utils\QueryUtils;
use Art\FakeContent\Utils\StringUtils;

class MyTypeManager extends BaseManager {

    public function create() {

        // Обработка создания сущности. 
        // С родителя приходит $this->config - данные профиля
    }

        /**
     * Подсчет количества сущностей для создания.
     *  Требуется для отображения прогреcc-бара и статистики.
     * @return void
     */
    public function prepare_create_operations(): void {
        // обработка количества
        $this->add_create_step( 'mytype', count( $this->config ) );
    }


    public function delete() {
        // Обработка удаления сущности. Удаляются только то, что создано
        // Получаем через мету _created_for_fake_content созданные сущьности
    }

        /**
     * Подсчет количества сущностей для удаления.
     *  Требуется для отображения прогреcc-бара и статистики.
     * @return void
     */
    public function prepare_delete_operations(): void {
        // обработка количества
        $this->add_delete_step( 'mytype', count( mytype_exists ) );
    }
}

В рамках одной команды методы подсчета количества запускаются раньше, чем обрабка самой команды. См. src/CLI/Commands/BaseCommand.php

Лицензия

GPLv2 или выше. Свободно используй, модифицируй, распространяй.

Благодарности

Этот плагин вдохновлён и построен на идеях замечательных инструментов и людей:

  • WP CLI — за мощную командную строку, которая делает WordPress ещё свободнее.
  • WooCommerce — за открытость и гибкость, позволившую легко интегрироваться.
  • Unsplash, Pexels, Pixabay — за бесплатные изображения, которые можно использовать в профилях.

А также тебе, кто использует этот плагин. Пусть этот плагин сэкономит тебе часы ручной работы. 💙

Специальная благодарность

  • Дмитрий @campusboy - за идеи, советы и поддержку

Read the full README on GitHub →

Releases

TagPublishedAssetDownloads
1.0.2 Nov 16, 2025 art-fake-content-creator.zip 3
1.0.1 Oct 15, 2025 art-fake-content-creator.zip 8
1.0.0 Oct 11, 2025 art-fake-content-creator.zip 1

Active-site estimate ≈10 comes from the median of recent superseded releases. Method.