Віджети відмінно доповнюють будь-яку тему WordPress, розташовуючись зазвичай в бічній панелі. Віджети легко додати, змінити або видалити, використовуючи їх drag-and-drop властивості.

Незважаючи на безліч існуючих плагінів WordPress, кращий спосіб отримати необхідний вигляд і функціональність – самому написати потрібний код.

Створення віджета для WordPress схоже на створення плагіна, тільки ще простіше. За допомогою віджета можна відправити форму, включити або вимкнути виведення певної інформації та вчинити інші подібні дії.

Місце і порядок розміщення віджетів встановлюються у файлі functions.php будь-якої теми WordPress.

У цій статті я розповім, як зробити простий віджет, що показує на сайті рекламний банер. Отже, приступимо.

Ресурси

  • Встановлений WordPress;
  • Загальне уявлення про віджетах в WordPress;
  • Знання основ WordPress API

1 Створення класу і функцій

Віджети в WordPress – це класи, які легко модифікувати. Клас надає розробнику готову функціональність «з коробки». Базовий клас віджета містить функції, які розробник повинен доповнити потрібним вмістом. Для початку створимо клас віджета.

Створіть новий файл ads_widget.php у каталозі, де встановлений WordPress. Потім помістіть туди наведений нижче код.

Зверніть увагу на коментар над ім’ям класу. Цей коментар містить інформацію про плагіні: його назва, ім’я автора і інші відомості:

/*
Plugin Name: Advertisement Widget
Plugin URI: 1stwebdesigner.com/
Description: An Advertisement Banner Widget
Author: Sam Norton
*/

2 Код ініціалізації віджету

Помістіть цей код у функцію Ads_Widgets(). Це код ініціалізує віджет і буде використовуватися для звернення до його поточної інстанції:

‘Ads_Widgets’, ‘description’ => ‘Displays Ads’ );
$this->WP_Widget(‘Ads_Widgets’, ‘Advertisement Widget’, $widget_ops);
}
?>

3 Функція створення форми

Тепер створимо код, який відобразить форму для збереження налаштувань в панелі адміністрування сайту. Його місце – функція form():

function form($instance)
{
$instance = wp_parse_args( (array) $instance, array( ‘title’ => » ) );
$title = $instance[‘title’];
$message = esc_attr($instance[‘message’]);
$link = esc_attr($instance[‘link’]);
?>