Небольшая утилитка WP-Seeders для Вордпресса

от автора

Мне понадобилась массовая генерация разделов для таксономии в WP.
По базе WP-CLI предлагает только команду wp term create, которая генерирует только один термин за вызов.

Старт: wp-seeders.php

Плагин начинается с простого файла wp-seeders.php, который регистрирует автозагрузку классов и подключает нужные зависимости. Ничего лишнего: подключил, загрузил, поехали.

Структура проекта

Внутри всё разложено вот так:

├── includes │   ├── Abstracts │   │   └── AbstractCLIController.php │   ├── Bootstrap │   │   ├── CLI.php │   │   └── Commands.php │   ├── Controllers │   │   ├── CLIController.php │   │   ├── SettingsController.php │   │   └── TermsController.php │   └── Load.php ├── templates │   └── seeders.php ├── bin, tests, vendor — по базе ├── composer.json └── и прочая шелуха

В директории includes/Controllers живут контроллеры, которые отвечают за отдельные куски логики. TermsController, например, занимается созданием терминов. SettingsController — настройками (вдруг потом захочется что-то тонко регулировать). CLIController читает файл сидера и создаёт термины.

Есть базовый AbstractCLIController, чтобы не копипастить общие методы.

В includes/Bootstrap находятся файлы, которые подключают команды к WP-CLI (Commands.php) и настраивают сам CLI (CLI.php). Всё по минимуму, без усложнений.

Как это работает

Допустим, у заказчика есть список терминов для таксономий в количестве 100 и более штук.

Инициализируем файл сидера:

wp seeders init

Создастся seeder.php в wp-content/wp-seeders:

<?php  namespace WPSeeders;  class Seeder {   /**    * The list of terms to be created.    *    * @var array    */   static public function init()   {     return [       'terms' => [         [           'taxonomy' => 'category',           'term_list' => [             // сюда термины           ],           'parent' => 0,         ]       ]     ];   } } 

Запуск сидерной аннигиляторной пушки 3000:

wp seeders run

Ну и впринципе всё.

Пока другого не придумал чё такого бы влепить. Может это можно развить во что-то большее.

Итог

Собрал плагин меньше чем за день, когда появилась подобная задача. Может в WP уже есть такие решения и я сделал велосипед щас, но я только в гитхабе находил парочку похожих, но неподдерживаемых проектов.

Плагин тут: github.com/aigen31/wp-seeders (звезду поставь, зря старался что-ли)

Всю статью написал ГПТ
Мы в эпохе мёртвого интернета, смиритесь

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Норм идея?

100% не2
0% не0

Проголосовали 2 пользователя. Воздержался 1 пользователь.

ссылка на оригинал статьи https://habr.com/ru/articles/905318/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *