Как стать автором
Обновить

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

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров1.3K

Мне понадобилась массовая генерация разделов для таксономии в 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 (звезду поставь, зря старался что-ли)

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

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Норм идея?
37.5% не3
62.5% не5
Проголосовали 8 пользователей. Воздержались 7 пользователей.
Теги:
Хабы:
+1
Комментарии1

Публикации

Работа

Ближайшие события