Разработка виджетов консоли. Widget API WordPress

Если у вас есть базовые знания о программировании, то вам не составит труда научиться создавать свои виджеты WordPress. Данная статья будет вам полезна если вы готовитесь создавать свои плагины WordPress. Не буду тянуть, просто начнет делать свои виджеты.

Создаем простейший плагин

Для начала создадим простейший плагин, для этого нам необходимо создать в папке плагинов /wp-content/plugins/ файл test-plugin.php. В созданном файле создадим код:

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

Вот так плагин будет выглядеть в панели администратора WordPress в разделе плагинов.

widget api wordpress на русском

После активации плагина можем продолжать его дописывать. Основной инструмент для добавления виджета это функция wp_add_dashboard_widget () которая добавляет виджет в консоль WordPress. Рассмотрим входные данные функции:

  • $widget_id (целое число) — обязательный параметр, идентификатор, будет использоваться в качестве класса CSS и ключа в массиве виджетов Консоли WordPress.
  • $widget_name (строка) — обязательный параметр, имя виджета, которое будет отображаться в заголовке виджета.
  • $callback (строка) — обязательный параметр, имя функции, которая будет отображать содержимое виджета Консоли.
  • $control_callback (строка) — необязательный параметр, обратный вызов, имя функции, которая будет обрабатывать форму нового виджета Консоли. Пока с этой функцией мы работать не будем.

 

Пример и порядок ввода параметров для функции wp_add_dashboard_widget

Код функции добавления виджетов

Запуск виджетов в Консоли реализует экшен wp_dashboard_setup которая вызывает функцию add_dashboard_widgets. В нашем примере функция add_dashboard_widgets отвечает за вывод информации в блок виджета.

В результате использования данного кода в нашем плагине, виджет будет показан в консоли CMS.

Пример вывода виджета

create widget example

Данный пример можно использовать для вывода разного разного рода важной информации в консоль (статистики продаж интернет магазина, контакты студии которая разрабатывала сайт и занимается его поддержкой, статьи которые были опубликованы пользователями с определенной ролью или вообще отдельным пользователем). Информацию можно выводить самую разную.

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

настройка виджетов widget api

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

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

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

 

Удаление лишних виджетов с консоли

Есть два подхода. Первый подход чистить глобальный массив в котором находится список виджетов вот так:

Этот пример убирает виджет Быстрой публикации.

Другие виджеты при необходимости можно удалять, немного изменив последний по вложенности ключ в массиве:

Удаляет виджет «Плагины»

$wp_meta_boxes[‘dashboard’][‘normal’][‘core’][‘dashboard_plugins’]

Удаляет «Свежие черновики»

$wp_meta_boxes[‘dashboard’][‘side’][‘core’][‘dashboard_recent_drafts’]

Удаляет «Свежие комментарии»

$wp_meta_boxes[‘dashboard’][‘normal’][‘core’][‘dashboard_recent_comments’]

Удаляет виджет «Входящие ссылки»

$wp_meta_boxes[‘dashboard’][‘normal’][‘core’][‘dashboard_incoming_links’]

Удаляет виджет «Прямо сейчас»

$wp_meta_boxes[‘dashboard’][‘normal’][‘core’][‘dashboard_right_now’]

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

 

Также второй подход к удалению, это использование специальных функций ядра CMS. Вот какой пример нам предлагает кодекс WordPress.

Если  вам не нужно удалять блоки виджетов, но ваш виджет после установки плагина попал в конец, его можно по умолчанию положить в начало при помощи перестановки глобального массива со всеми виджетами (global $wp_meta_boxes;). О сортировке массива и перестановке тут не пишу, это уже вопросы по php.

Для более продвинутой работы с виджетами вы всегда можите посмотреть как они программировались в самом ядре WordPress, в файле:

/wp-admin/includes/dashboard.php

Дополнительные материалы по API Widget

Код для вывода всех опций стандартных виджетов.

Для вывода одной опции виджета можно использовать функцию:

Для обновления опций виджета кодекс WordPress предлагает следующую функцию:

Для более полного изучения материала вам могут понадобиться статьи:

На сегодня думаю вам будет достаточно материала который можно изучать и тестировать в своих плагинах. Удачи в разработке качественных сайтов.


Купить хостинг WordPress
Репетитор по wordpress
Услуги репетитора онлайн. Список курсов которые я веду
  • Базовый курс по веб-дизайну;
  • Верстка сайтов;
  • Общий курс по CMS WordPress и продолжение курса по разработке шаблонов;
  • Разработка сайтов на PHP.
Подробнее читайте на странице репетитор по WordPress
*/

Розробка віджетів консолі. Widget API WordPress

Якщо у вас є базові знання про програмування, то вам не важко навчитися створювати свої віджети WordPress. Ця стаття буде вам корисна, якщо ви готуєтеся створювати свої плагіни WordPress. Не тягтиму, просто почне робити свої віджети.
(далее…)

Николаенко Максим

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


Вам может также понравиться...

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Шаблоны для WordPress
Самый лучший хостинг в Украине
Стабильный хостинг для Drupal