Задавайте вопросы по курсам WordPress

Розробка віджетів консолі. 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
*/

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

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


You may also like...

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься.

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.

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