Создание плагина для WordPress «Избранные записи». Урок 11

Создание плагина для WordPress Избранные записи

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

автор

Автор: Андрей Кудлай

Зовут меня Андрей Кудлай. Родом я из Украины, живу в Днепропетровске. Веб-программированию учился сам. Неплохо знаю HTML, CSS, PHP, JavaScript.

скачать исходникискачать урок

Начнем с того, что скажем несколько слов о написании виджетов. Если до этого мы писали весь код в процедурном стиле, то при написании виджета нам потребуется уже использовать объектно-ориентированный подход.

В случае с плагинами WordPress предлагает два варианта написания кода на выбор: процедурный или объектно-ориентированный. В случае же с виджетами выбора у нас нет, поскольку для того, чтобы написать виджет, мы должны наследовать уже имеющийся класс WordPress — это класс WP_Widget. Соответственно, нам потребуется писать собственный класс, который и будет описывать создаваемый виджет.

Итак, откроем главный файл плагина и инициализируем такой класс:

add_action( 'widgets_init', 'wfm_favorites_widget' );
function wfm_favorites_widget(){
	register_widget( 'WFM_Favorites_Widget' );
}

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

require __DIR__ . '/WFM_Favorites_Widget.php';

В созданном классе мы можем работать с четырьмя методами:

__construct — метод конструктора, определяющий настройки виджета в списке виджетов;

form — метод, описывающий форму виджета в админской части;

widget — метод, описывающий вывод виджета в пользовательской части;

update — метод, отвечающий за обновление настроек виджета в админке.

Пока что мы используем в коде только первые три метода. Метод update является опциональным и используется в том случае, если нам необходимо выполнить дополнительные действия в момент обновления настроек виджета.

Итоговый код класса в итоге будет примерно таким:

<?php

class WFM_Favorites_Widget extends WP_Widget{

	// настройки виджета в списке виджетов
	public function __construct(){
		$args = [
			'name' => 'Избранные записи',
			'description' => 'Выводит блок избранных записей пользователя'
		];
		parent::__construct('wfm-favorites-widget', '', $args);
	}

	// форма виджета в админке
	public function form($instance){
		extract($instance);
		$title = !empty($title) ? esc_attr( $title ) : 'Тестовое название';
		?>

		<p>
			<label for="<?php echo $this->get_field_id('title') ?>">Заголовок:</label>
			<input type="text" name="<?php echo $this->get_field_name('title') ?>" value="<?php echo $title ?>" id="<?php echo $this->get_field_id('title') ?>" class="widefat">
		</p>

		<?php
	}

	// виджет в пользовательской части
	public function widget($args, $instance){
		
	}

	// обновление настроек виджета в админке
	/*public function update(){
		
	}*/

}

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

Метод form создает пока что лишь одну настройку — название виджета, которое будет выводиться в пользовательской части. В качестве параметра метод принимает массив с сохраненными настройками.

Если мы нигде не ошиблись, то теперь в разделе виджетов мы увидим новый виджет, который можем использовать и даже сохранить первую настройку для него — его заголовок.

На этом текущий урок завершен. Удачи и до новых встреч!

Хотите быстро научиться создавать сайты и блоги на WordPress с уникальным дизайном?

Получите самую полную в Рунете бесплатную систему обучения создания сайтов на WordPress “Уникальный сайт с нуля”

Получить

Метки: ,

Комментарии Вконтакте:

Комментарии Facebook:

Комментарии (8)

  1. Alexey

    У меня такой же редактор не поддерживает код wordpress.

    • Андрей Кудлай

      Уточните вопрос. Не понятно, о каком редакторе речь? О редакторе коде или редакторе WordPress?

      • Alexey

        Как установить пакет подсветки функций wordpress для Sublime text 2?

        • Андрей Кудлай

          Это плагин WordPress от purplefish32, установка стандартная, как и для большинства прочих плагинов для ST.

          • Alexey

            Можете объяснить подробнее как установить его.

          • Андрей Кудлай

            В любой статье или видео на первой же странице выдачи Гугла по запросу sublime text установка плагинов можно найти ответ на заданный вопрос. Установка данного плагина делается аналогично.

          • Alexey

            Полетел редактор soblime text 2 что делать?
            Удалять не удаляется полностью.
            Переустановить — не может заменить 3 файла.

          • Андрей Кудлай

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

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

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

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree