Как я создал «визард» для WordPress от своей глубокой лени

Привет всем. Все мы любим автоматизацию процессов в нашей жизни. Я также не стал исключением. Ведь лень двигатель прогресса, поэтому и пишу сей пост.



Начну сначала: На сегодняшний день я работаю QA (куа) тестером в компании TemplateMonster в отделе Wordpress. Никогда не думал до этого, что от установок чистого WordPress движка (далее WP) для тестирования шаблонов, может начать тошнить. Особенно когда количество установок за день переваливает за 20. Вот однажды в один из таких дней и зародилась мысль сделать автоматизатор (Мастер, WIZARD) установки.

Многие кто работал c данным движком знают как осуществляется установка по умолчанию.
В данной статье будет рассмотрена установка на Локальный сервер — OpenServer.

Стандартная установка WP, кто не знал
  • Для начала мы должны создать mysql базу данных с кодировкой — utf8_general_ci.
  • Затем поместить содержимое архива, скачанного с официального сайта WP или репозитория на GitHub в папку на локальном сервере, где будет лежать Ваш сайт.
  • Прописать в адресной строке локальный путь к данной папке где Вас встретит визард стандартной установки WP. На первом экране визарда необходимо выбрать язык установки. После чего ввести информацию для подключения к только что созданной базе данных. А именно:
    • Имя базы данных mysql.
    • Имя пользователя к базе.
    • Пароль к ней.
    • Сервер.
    • Префикс, если это необходимо.
  • Затем, если все прошло успешно в пункте выше, нас встретит второй экран визарда. Он попросит:
    • Название будущего сайта.
    • Имя пользователя.
    • Пароль в панель администратора.
    • А также email.
  • После всех операций мы наконец-то попадаем на экран входа в админку.


Но я хотел отойти от этого всего и просто жмакнуть на кнопку — «сделать хорошо». На PHP до этого не кодил толком. Разве что в универе. И то, ради сдачи лабораторных работ оттачивал навыки копипаста.

На данный момент мой визард находится в свободном доступе на Git-е. Вы вправе скачивать его, редактировать, настраивать под себя, менять иконку и бг. В общем все что вздумается.

Я описал настройку в 3 шага в файле README.md, а так же в данном видео.

Настройка в 3 клика
Настройка очень проста:

  • Перейти в файл wp-wizard/install.php.

  • Прописать путь к папке с установкой WP в переменной $template_testing_folder.

  • Прописать локальный IP-адрес в переменной $site_url (эта переменная установится в пути базы данных).


Почему это удобно:

  • Настройка производится всего 1 раз на все установки.

  • Вы не создаете базу данных.

  • Не требуется следить за последней версией WP, она всегда подтягивается из официального репозитория.

  • Чтобы сделать новую установку WP — необходимо пройти по локальному пути, ввести название сайта и нажать Enter. Внимание! База будет называться также. Если необходимо иметь разное название базы данных и папки с сайтом — я сделал для этого отдельную переменную. Нужно просто сделать в index.php новый input и продублировать его имя в install.php. в переменную $db_name.

Минусы на данный момент:
Nobody's Perfect:

  • Данный скрипт был протестирован на нескольких web-хостингах, но не может создавать для себя БД и имортить базовые таблицы WP при установке. Это связано с правами доступа на «создание», «чтение» и«редактирование» бд. Поэтому предназначен для использования на локальном сервере.

  • Главный, наверное, минус в том что код был написан новичком. Я сам считаю что код не особо сложно читаем, но это все стоит организовать получше. Разбить функции по своим файлам и писать полностью на ООП.


Что конкретно делает скрипт:
Функции прописаны в файле wp-wizard/install.php:

  • После ввода в input названия папки с установкой, вызывается функция которая выкачивает последнюю версии WP, и разархивирует .zip в папку, которую вы указали выше в переменную $template_testing_folder.

  • Затем создается БД и импорт в нее SQL со стандартными таблицами WP, которые генерируются по умолчания, как если бы вы проходили стандартный визард.

  • После чего происходит создание и замена строк файла wp-config.php. Главного файла в котором содержится подключение к бд. Строки, как вы поняли, генерируются из переменных вначале файла wp-wizard/install.php.

  • А после несколькосекундной генерации всего добра, мы увидим окошко для входа в админ-панель WP.
Внимание! В папке wp-wizard/ лежит файлик дампа main.sql. Это, как уже говорилось выше — стандартный дамп, который генерит WP. В котором в таблице «wp_users» забит login: admin и password: 1. Если вы хотите использовать свой файлик дампа, то вам нужно заменить локальный адрес на «site_url».


  • Checkbox «NEED KAVA» и функция is_kava(); вызывают подгрузку темы KAVA непосредственно в папку с темами. Это тема от ZEMEZ — вендор, который частенько попадает на тестирование, поэтому я сделал чекбокс при создании WP. Как они сами говорят про себя — «Get the truly easy-to-use free theme with tons of functionality and perfect design!» на официальном репозитории GitHub.


А вот так выглядит стартовая страница WP-WIZARD.



Всего одно поле. Это то что я и хотел.

Всем добра и спасибо за внимание!
Поделиться публикацией
Комментарии 13
    +2
    Откройте для себя мир докера hub.docker.com/_/wordpress
      +1
      Докер это хорошо, но не стоит его пихать везде. Кроме того речь идет про OpenServer. Могу предположить что у автора Win, а там с докером не все так гладко (по крайней мере в 7ке).
      +1
      Шёл 2018 год.
        0
        А нормальным способом сделать не легче было:
        wp core download —path=/tmp/123/ && wp config create —dbname=testing —dbuser=wp —dbpass=passwd —locale=ru_RU && wp core install —url=site.com —title=Site —admin_user=user —admin_password=passwd —admin_email=user@site.com —path=/tmp/123/

        Стоило погуглить готовые решения.

        Через wp-cli например. Никаких дампов с паролем администратора в гитхабе никаких взрывающихся курсоров и логотипов темплейт монстра (хотя возможно статья писалась как раз под то чтоб логотип прикрепить) просто запустил и работает, самое главное лень удовлетворена, прочел документацию и выполнил команды установки, вместо того чтоб бы бы код новичками писать.

        Вообщем не благодарите.
          0
          И ради этого стоило заканчивать универ…
            –1
            Мельком пробежался по коду

            // Name of the file
            $filename = "main_1.sql";

            Ну да, все сходится
            Главный, наверное, минус в том что код был написан новичком.
              +1
              Ну да, все сходится
              Главный, наверное, минус в том что код был написан новичком.

              Странный упрек. WP как раз заточен под новичков и с технической стороны специально выбраны не самые лучшие решения для задач, но самые лучшие для новичков. Порог вхождения специально сделан минимальным.
              Это позволило WP стать таким популярным, и это очень мудрый выбор.
                0
                Это не упрёк и к вордпрессу никакого отношения мой комментарий не имел, меня просто позабавило комментирование кода, которое 100% сходится с фразой автора о том, что он новичок
              0
              Вот поэтому примерно wordpress — самая популярная CMS в мире.
              Толпа нубов создаёт, поддерживает, придумывает и при каждом удобном случае на вопрос «почему wordpress?» отвечает — «это самая популярная CMS в мире»
              Тяп-ляп, шаблончик, плагинчики, скачай тут, скачай там — и «Еще один сайт на WordPress» готов!

              п.с. Автор изобрёл докер заново :]
                0
                да где там докер то, cli пытался изобретать но в итоге получился другой визард вместо стандартного, почти такой же но более дырявый
                  0
                  Ну, не докер, конечно, надо было «изобрёл» в кавычки взять. Иногда мы такие мелочи пропускаем.

                  У нас modx клонируется на уровне сервера. Одна команда — и, шлёпс, чистая копия с предустановками, нам приятными.
                  +1
                  а потом каждый проект словно новый ЯП изучаешь, и каждый раз ломается логика. На кой черт в админке генерируются стили, и хранятся в базе
                  0
                  Индусы лет 10 назад изобрели софтакулес, где все это есть + даже обновления и бэкапы.
                  Но да, он платный…

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

                  Самое читаемое