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

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

От автора: в этом уроке мы продолжим работу над виджетом для плагина Избранные записи. В частности, мы реализуем вывод блока записей в пользовательской части сайта.

автор

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

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

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

Итак, приступим к выводу блока записей в пользовательской части сайта. Как вы помните, за вывод данных виджета на сайте отвечает метод widget в создаваемом нами классе WFM_Favorites_Widget. Данный метод принимает 2 параметра: $args и $instance. В первом параметре находится верстка виджета, во втором — его данные.

Итоговый код метода widget будет таким:

public function widget($args, $instance){
	if( !is_user_logged_in() ) return;
	echo $args['before_widget'];
		echo $args['before_title'];
			echo $instance['title'];
		echo $args['after_title'];
		wfm_show_dashboard_widget();
	echo $args['after_widget'];
}

Здесь мы использовали уже готовую функцию wfm_show_dashboard_widget(), которая получает и выбирает сохраненные пользователем записи.

Теперь необходимо поправить некоторые участки кода, чтобы все работало без проблем в пользовательской части. Например, в функции wfm_favorites_scripts() стили и скрипты в пользовательской части подключаются только в отдельной статье. Поскольку виджет должен теперь работать на всем сайте, нам придется убрать эту проверку. Также необходимо будет внести некоторые правки в ajax запрос. Все эти изменения вы найдете в видео версии урока.

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

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

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

Получить

Метки: ,

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

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

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

  1. Леонид

    Спасибо Вам за курс, очень помог он мне, но у меня немножечко отвлеченный вопрос. В создаваемом мной плагине есть собственные таблицы БД и как минимум одну из них нужно локализовать. Правильный ли у меня ход мыслей — через функцию get_bloginfo(‘language’) узнаю текущий язык сайта, потом на основе этого создаю запрос к БД на выборку из поля, соответствующего текущей локализации ?

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

      Если сайт мультиязычный, тогда функция get_bloginfo() вряд ли вернет текущий язык, поскольку язык зачастую берется из куки или get-параметра (хотя могу и ошибаться, но вряд ли, она, насколько я помню, возвращает именно локализацию WP, а не текущий язык мультиязычной версии). Соответственно, текущий язык необходимо брать именно оттуда, где он храниться. В остальном алгоритм верен.

  2. Леонид

    Небольшое уточнение -если в процедурном стиле мы называем функции плагина в форме plugin_name_action(), правильно ли я понимаю, что в ООП внутри класса часть имени plugin_name_ будет избыточна т.к. метод всегда вызывается из класса(объекта этого класса)?

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

      Честно говоря, не понял про избыточность… Методы, как и функции, можно называть так, как Вы хотите. Если Вы следуете рекомендациям PSR, то согласно PSR-1 имена методов пишутся в camelCase.

      • Леонид

        Я имею в виду, что в обычных функциях без ООП во избежание дублирования имен с функциями других плагинов имена функций начинаются с названия плагина. Но если та же функция находится внутри класса с уникальным именем, то нет необходимости дублировать имя плагина в ее названии, а можно просто назвать ее исходя из ее функционала ?

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

          Теперь понял)
          Да, поскольку метод принадлежит конкретному классу, можно не бояться пересечься в названиях методов Вашего класса с методами других классов или функций.

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

Ваш 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