Пишем WordPress-плагин за 10 минут

Вернуться
Опубликовано: 31.05.2015 г.

Веб-разработчики очень любят движок WordPress (он же WP) за его гибкость, бесплатность и универсальность. На нем можно сделать не только блог, но и интернет-магазин, сайт-визитку и много чего еще. Большинство функционала к движку добавляется при помощи плагинов, и их наличие, а также возможность писать новые – еще одно преимущество WP. Научиться самостоятельно писать плагины полезно вдвойне – вы не только добавите уникальную функцию движку, но и сможете глубже разобраться в устройстве CMS, всех тонкостях и нюансах. Эта статья расскажет о том, как написать простенький плагин, с минимальной функциональностью. Предполагается, что вы имеете установленный WP на хостинге, а также немного знаете PHP.

Что будем писать

Для того чтобы разобраться в том, что такое плагин, как он функционирует и другие особенности, что-то сложное писать не нужно, хватит и элементарного функционала, например, такого: когда статус одного из постов меняется на «Отправлено», плагин формирует письмо и отправляет его по заданному адресу. оповещая об обновлении на блоге. Для достижения поставленной цели нужно пройти через ряд этапов:

В таком же порядке информация будет размещена и в статье.

Создание файла плагина

Все плагины для WordPress размещаются в отдельной папке wp-content/plugins – только здесь движок их сможет «заметить» и задействовать. Это может быть один файл или несколько. Во втором случае все файлы плагина предварительно помещаются во вложенную папку (желательно, чтобы ее имя совпадало с именем плагина).

Начинаем создавать наш плагин – создадим папку send_mail, гден разместим пустой одноименный php-файл. Если вы планируете после окончания работы опубликовать свое творение, чтобы оно стало доступно другим пользователям, проверьте, что его имя не задействовано ранее другим плагином, чтобы не возникло несовместимости.

Добавление описания и служебной информации

В отличие от многих других систем, WordPress требует, чтобы определённые служебные строки были указаны в каждом плагине. Поэтому открываем наш php-файл и добавляем в него информацию о названии, авторе, версии и лицензии. Выглядит это примерно так:

Также можно добавить текст лицензии GPL2 и данные о копирайте, однако это не является обязательным. Вся эта информация будет отображаться в админке, если наш плагин будет установлен. Сохраняем файл – заготовка есть.

Добавление плагина в WordPress

С точки зрения движка наш свежесозданный файлик уже является полноценным плагином и неважно, что он рока не несет в себе никакого функционала. Чтобы убедиться в этом, скопируем нашу папку send_mail в общую папку с плагинами на сервере, после чего в админке уже будет отображаться наш плагин со всей заданной для него информацией. Более того, его даже можно активировать. А раз так, можно смело приниматься за написание функционала.

Написание функции отправки почты

Если вы ранее работали с PHP, то должны знать, что в нем есть стандартная функция для отправки почты mail(). В WordPress используется практически полный ее аналог с именем wp_mail(). В отличие от родительской, wp_mail имеет более расширенный функционал и ее проще использовать. Она может принимать несколько аргументов:

Таким образом, наша функция будет иметь такой простой вид:

Что такое $post_ID, объясним немного позже. Как видно, функция wp_mail() задается всего с тремя аргументами, остальные можно опустить. Кстати, чтобы почта отправлялась, нужно, чтобы действие было разрешено в файле php.ini на сервере.

Добавляем срабатывание нашей функции на определенное событие

Немного теории. В WordPress любое действие сопряжено с событием, которое можно отследить и повесить на него т.н. хук, то есть, любую функцию. Этим мы и воспользуемся. Нас интересует событие publish_post. Оно происходит каждый раз, когда публикуется новый пост, а также при редактировании и последующей публикации старого.

На сайте для разработчиков под WordPress тут есть список всех событий. Если найти там наше, то видно, что publish_post имеет аргумент – тот самый $post_ID, который мы использовали ранее в функции. Чтобы «навесить» на событие нашу написанную ранее функцию, нужно воспользоваться другой встроенной функцией — add_action(), позволяющая добавить любому событию произвольное действие. Строчка кода, выполняющая данную привязку, будет выглядеть так:

add_action('publish_post', 'publish_email_send');

Эта строчка также добавляется в тело нашего плагина. По сути, на этом создание плагина можно считать завершенным. Напоследок проверьте, чтобы в коде не было пустых строк – ЦЗ может на них ругаться при установке.

Активация и проверка

Осталось самое просто – удостовериться, что все работает. Для этого в админке активируйте плагин (выше описывалось, как это делается), после чего попробуйте добавить новую запись или отредактировать старую. если всё сделано правильно, на тестовую почту придет письмо, оповещающее об обновлении. если же письмо не пришло, перепроверьте код, а также разрешение на отправку почты с сервера.

1391 0

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

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