В этом уроке – основы создания плагина для WordPress. Конечно, на разработку некоторых плагинов могут уйти недели, но уже в конце этого урока вы сможете создать свой собственный плагин.
Если вам требуется разработка плагина на заказ для WordPress или для WooCommerce, то я и моя команда будем рады вам помочь, для этого напишите нам.
Сначала может показаться, что создание плагина для WordPress — это что-то невероятно сложное и это нужно долго изучать, но на самом деле всё зависит от задач, которые выполняет плагин, понятно, что если вы разрабатываете «свой WooCommerce», то возможно вам будет мало и года разработки, но если ваш плагин просто добавляет несколько строчек CSS в админку, то это займёт от силы 5 минут.
Например однажды один мой приятель решил создать плагин, связанный с SEO и фильтрацией товаров, так его компания выделила ему 80к бюджета и дала два месяца на разработку.
Весь наш процесс мы разделим на шаги для удобства понимания.
Скажу так, код, который находится в плагине, очень схож с тем кодом, который размещают в functions.php
. То есть вы можете потренироваться с готовыми хуками.
Ну раз уже я заговорил о произвольном CSS коде, то эту цель и будет выполнять мой плагин. Например я просто покрашу верхнюю панель в админке в другой цвет. CSS я вставлю прямо через тег, используя хук admin_head
.
add_action( 'admin_head', 'true_colored_admin_bar_72aee6' ); function true_colored_admin_bar_72aee6(){ echo '<style>#wpadminbar{background-color: #72aee6;}</style>'; // выводим стили }
По сути это готовый код и если вы отправите его в functions.php
, то всё будет отлично работать.
Но мы же пишем плагин, поэтому этот код держим рядом и переходим ко второму шагу.
Есть два варианта:
wp-content/plugins
, В общем либо /wp-content/plugins/misha.php
, либо /wp-content/plugins/misha/misha.php
(рекомендуется).
Однако после того, как вы всего лишь создадите эти файлы, ничего не произойдёт, поэтому добавьте в главный файл плагина (ну он сейчас один) эти строчки:
<?php
/* Plugin name: Мишин плагин */
Иииии:
Поимимо «Plugin name» у плагинов есть и другие метаданные, давайте их разберём подробнее.
В свой главный файл плагина теперь отправляем что-то в этом духе:
<?php
/*
* Plugin Name: Мишин плагин
* Plugin URI: https://misha.agency/wordpress/sozdai-svoi-plugin.html
* Description: Описание супер-плагина
* Version: 1.1.1
* Author: Миша Рудрастых
* Author URI: https://misha.agency
* License: GPLv2 or later
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
*
* Text Domain: truemisha
* Domain Path: /languages
*
* Network: true
*/
После вставки всех этих параметров то, как плагин выглядит в админке, изменится:
Вот описание всех мета-параметров:
/languages
. Если ваш плагин находится в официальном репозитории WordPress, то этот параметр можно не использовать.На самом деле я уже упоминал выше, что по сути вы можете использовать ваш плагин, для того, чтобы сделать изменения на сайте при помощи экшенов или фильтров.
И также выше мы рассмотрели пример, в котором это и сделали, изменив цвет админ бара в админке. Тем не менее есть пара хуков, которые относятся непосредственно к плагинам и давайте уделим им немного внимания.
Функция register_activation_hook() позволяет привязать какую-то произвольную функцию к событию активации плагина.
Сразу давайте рассмотрим пример – например деактивируем плагин «Hello Dolly» функцией deactivate_plugins() при активации вашего плагина.
register_activation_hook( __FILE__, 'truemisha_activate' ); function truemisha_activate(){ // функция, срабатывающая один раз при активации плагина deactivate_plugins( 'hello.php' ); }
В реальности этот хук чаще всего используется при создании кастомных таблиц в базе данных.
Функция register_deactivation_hook() позволяет привязать какую-то произвольную функцию к событию активации плагина.
register_activation_hook( __FILE__, 'true_deactivate' ); function true_deactivate(){ // функция, срабатывающая один раз при деактивации плагина // делаем что-либо }
Функция register_uninstall_hook() позволяет привязать какую-то произвольную функцию к событию активации плагина.
Предположим после удаления вашего плагина, вполне логично очищать базу данных от его настроек, тогда код будет выглядеть так:
register_uninstall_hook( __FILE__, 'true_uninstall' ); function true_uninstall(){ delete_option( 'true_plugin_settings' ); }
Также в ситуации с удалением плагина вы можете рассмотреть вариант с использованием файла uninstall.php.
Окей, с созданием плагинов разобрались, а как насчёт создания темы для WordPress? Вот это уже посложнее, а разобраться вам поможет мой видеокурс!
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.
Все очень просто, пока не попробуешь сделать что-то действительно нужное, что потребует зарегистрировать кастомный тип данных, отобразить таблицу с записями этого типа, обработать пагинацию, создать редактор, отличающийся от дефолтного, прописать балк-функции и еще несколько нужных вещей. Но тогда уже заголовок не такой кликбейтный получится, да.
Кликбейт наше всё
Спасибо за ваши статьи, всегда выбираю их из списка поисковиков при том или ином вопросе. Доступный язык изложения, нет лишней "воды", и все коды работают после прочтения материала.
Спасибо! Приятно слышать
Миша, научи, пожалуйста, как зарабатывать на разработке под WordPress. Рынок переполнен, люди работают за еду.
Легко. А свои WordPress на сколько оцениваете от 1 до 10? 🙃
Создаю плагины, темы, верстаю. Думаю на 6-7.
Окей, передам ваши контакты нашему HR 🙃
А че, так можно?) Я тоже так хочу. Могу качественно верстать и натягивать верстку на вп
блин а где перелинковка на похожие темы?
ищу "верстка админки плагина" и иду снова в яндекс искать.... ...
вон же ссылка на видеокурс 😁
Что скажете о рынке Вордпресс? Он действительно переполнен разработчиками?
Не думаю,
хороших разработчиков в этой сфере совсем немного, потому что большинство тех, кто выдаёт себя за разработчиков, умеют только ставить и настраивать готовые темы.