Создание плагина WordPress с нуля

Создание плагина WordPress с нуля

18 сентября 2019 WordPress

Когда я создавал свой первый плагин, то оказалось, что в сети очень мало информации по этому вопросу. С трудом удалось найти даже основы. Надеюсь эта статья поможет вам научиться писать различные плагины для WordPress.

Наверняка вы уже пользовались и знаете, что такое хуки WordPress, которые размещают в файле functions.php. Если нет, то желательно почитать что такое хуки и как их использовать , так как код плагинов очень схож с кодом в functions.php

В этой статье рассмотрим пример создание плагина, который добавляет код Яндекс.Метрики на сайт. Сам код будет размещаться и редактироваться в настройках плагина в панели администрирования.

Создание структуры плагина

Для создания плагина необходимо в папке /wp-content/plugins/ создать новую папку с именем нашего плагина. Если плагин состоит только из одного файла, то можно разместить этот файл сразу в папке plugins. Наш плагин будет использовать несколько файлов и использовать отдельную папку я думаю лучше.

Создаем папку addmetric и сразу добавляем в нее 2 файла addmetric.php — основной код плагина и uninstall.php — код, который будет вызываться при удалении плагина.

Создание страницы с настройками

Открываем файл addmetric.php и прописываем название плагина следующим образом:

<?php 
 /*
 Plugin Name: AddMetric
 */

Теперь в разделе Плагины → Установленные появился наш плагин. Нажимаем Активировать.

Создаем пункт с настройками в меню. Все в том же файле ниже пишем код:

// Добавить страницу настроек в меню
function am_register_options_page() {
    add_options_page('Добавить код метрики', 'Добавить код метрики', 'manage_options', 'addmetric', 'am_options_page');
}

После чего у нас появляется новый пункт меню в настройках.

Добавляем код страницы:

// Вывод формы
function am_options_page() {
  
if (isset($_POST['submit'])) {   
   if (function_exists('current_user_can') && !current_user_can ('manage_options')) {
		die ('Hacker?');
    }

    if (function_exists ('check_admin_referer')) {
		check_admin_referer('addmetric_form');
    }

    $am_text = $_POST['am_text'];

    update_option('am_text', $am_text);
    echo '<p>Успешно сохранено!</p>';
}   
?>

<div>
    <h2>Добавить код метрики</h2>
    <form method="post" name="addmetateg">
	 <? 
	    if (function_exists ('wp_nonce_field') ) {
			wp_nonce_field('addmetric_form'); 
	    }
	    $cur_text = get_option('am_text');
	?>
	<p>Введите код Яндекс.Метрики</p>
	<table class="form-table">
	    <tbody>
		<tr valign="top">
		    <th><label for="am_text">Код:</label></th>
		    <td><textarea name="am_text" rows="10" cols="100"><?echo stripslashes_deep($cur_text);?></textarea></td>
		</tr>
	    </tbody>   
	</table>
	<?submit_button();?>
    </form>
</div>
<?}

Тут создается обычная форма с полем и небольшой проверкой на права пользователя. Значение поля записывается и выводится из настройки сайта с помощью функции get_option('am_text');

Вывод плагина на сайте

И добавляем код метрики из настроек с помощью хука на сайт :

// Добавить код в wp_footer()
function add_metric_to_footer() {
    echo stripslashes_deep(get_option('am_text')); /// выводим код метрики без экранирующих слэшей у строковых значений 
}
add_action( 'wp_footer', 'add_metric_to_footer' );

Полный код файла addmetric.php:

<?php 
 /*
 Plugin Name: AddMetric
 */
 
// Добавить страницу настроек в меню
function am_register_options_page() {
    add_options_page('Добавить код метрики', 'Добавить код метрики', 'manage_options', 'addmetric', 'am_options_page');
}

add_action('admin_menu', 'am_register_options_page');

// Вывод формы
function am_options_page() {
  
if (isset($_POST['submit'])) {   
   if (function_exists('current_user_can') && !current_user_can ('manage_options')) {
		die ('Hacker?');
    }

    if (function_exists ('check_admin_referer')) {
		check_admin_referer('addmetric_form');
    }

    $am_text = $_POST['am_text'];

    update_option('am_text', $am_text);
    echo '<p>Успешно сохранено!</p>';
}   
?>

<div>
    <h2>Добавить код метрики</h2>
    <form method="post" name="addmetateg">
	 <? 
	    if (function_exists ('wp_nonce_field') ) {
			wp_nonce_field('addmetric_form'); 
	    }
	    $cur_text = get_option('am_text');
	?>
	<p>Введите код Яндекс.Метрики</p>
	<table class="form-table">
	    <tbody>
		<tr valign="top">
		    <th><label for="am_text">Код:</label></th>
		    <td><textarea name="am_text" rows="10" cols="100"><?echo stripslashes_deep($cur_text);?></textarea></td>
		</tr>
	    </tbody>   
	</table>
	<?submit_button();?>
    </form>
</div>
<?}


// Добавить код в wp_footer()
function add_metric_to_footer() {
    echo stripslashes_deep(get_option('am_text')); // выводим код метрики без экранирующих слэшей у строковых значений 
}
add_action( 'wp_footer', 'add_metric_to_footer' );

Удаление плагина

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

Записываем в файл uninstall.php:

delete_option('am_text');

Создание архива для установки

Тут все очень просто. Добавляем папку нашего плагина в архив addmetric.zip и все готово. Теперь архив с плагином можно будет устанавливать на другие сайты WordPress из админ-панели.

Остались вопросы по статье? Задайте их прямо сейчас!
Похожие записи
WPGrabber установка и настройка с примерами, скачать плагин бесплатно

WPGrabber это парсер для WordPress, с помощью которого можно скачать и сохранить записи с абсолютно любого доступного веб-сайта. Обычно его применяют для парсинга каталога товаров или новостей. Плагин может полностью автоматизировать добавление контента на сайт. Можно настроить его автоматический запуск Читать далее

Как создать интернет-магазин на WordPress

WooCommerce несомненно является лучшим бесплатным решением для создания интернет-магазина на WordPress. Кроме того, это одна из лучших платформ электронной коммерции с открытым исходным кодом. Цифры говорят сами за себя: более 4 миллионов установок, рейтинг 4.5 (на основе более чем 3000 Читать далее

Как установить WordPress: полное руководство для начинающих

Это полное пошаговое руководство для начинающих, которое поможет вам создать свой первый сайт на WordPress на любом веб-хостинге или локальном сервере. Почему WordPress? WordPress является самой популярной платформой для создания веб-сайтов. На сегодняшний день её используют 59% всех веб-сайтов созданных Читать далее

WordPress создание темы с нуля

Давно хотел написать подробное руководство о том, как создать тему на WordPress с нуля. Вам это пригодится: если вы хотите научиться разрабатывать сайты на WP, а не просто устанавливать шаблонные решения; вы хотите сделать уникальный дизайн для своего сайта или Читать далее

Как создать виджет WordPress

Виджеты используются для добавления контента на страницу WordPress без изменения шаблонов тем. Боковая панель является областью по умолчанию для добавления содержимого виджетов. Также вы можете зарегистрировать собственную область виджетов и добавить в нее виджеты. WordPress содержит некоторые виджеты по умолчанию Читать далее

Оптимизация WordPress

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

Отправка сообщений в Telegram из Contact Form 7

Мы уже рассматривали как отправлять сообщения в телеграмм из обычного PHP скрипта и заказы из OpenCart. В этой статье вы узнаете как отправлять сообщения в телеграмм из плагина WordPress Contact Form 7. Создаем бота Боты в Telegram создаются через другого Читать далее

Один комментарий на «Создание плагина WordPress с нуля»

  1. Евгений:

    Отличная статья! Спасибо и успехов вам!

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

*

code