Створення плагіна WordPress «Вибрані записи». Урок 11

15

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

Створення плагіна WordPress «Вибрані записи». Урок 11

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

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

Створення плагіна WordPress «Вибрані записи». Урок 11Створення плагіна WordPress «Вибрані записи». Урок 11

Почнемо з того, що скажемо кілька слів про написання віджетів. Якщо до цього ми писали весь код в процедурному стилі, то при написанні віджета нам потрібно використовувати об’єктно-орієнтований підхід.

У випадку з плагінами 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 є опціональним і використовується в тому випадку, якщо нам необхідно виконати додаткові дії в момент оновлення налаштувань віджета.

Підсумковий код класу в підсумку буде приблизно таким:

‘Вибрані записи’,
‘description’ => ‘Виводить блок обраних записів користувача’
];
parent::__construct(‘wfm-favorites-widget’, «, $args);
}
// форма віджета в адмінці
public function form($instance){
extract($instance);
$title = !empty($title) ? esc_attr( $title ) : ‘Тестове назва’;
?>

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

Метод form створює поки що лише одну налаштування — назва віджета, яке буде виводитися в користувацької частини. В якості параметра метод приймає масив із збереженими налаштуваннями.

Якщо ми ніде не помилилися, то тепер в розділі віджетів ми побачимо новий віджет, який можемо використовувати і навіть зберегти першу налаштування для нього — його заголовок.

На цьому поточний урок завершено. Удачі і до нових зустрічей!