Від автора: у цьому уроці ми продовжимо створення плагіна WordPress «Вибрані записи». Нагадаю, у попередньому уроці ми реалізували функціонал, що дозволяє очищати список обраного, тобто видаляти всі статті з нього за один раз, а не по одній. У цьому уроці ми приступимо до створення власного віджета, використовуючи який ми виведемо блок статей Обраного, приміром вашого сайту.
Автор: Андрій КудлайЗвуть мене Андрій Кудлай. Родом я з України, живу в Дніпропетровську. Веб-програмування вчився сам. Непогано знаю HTML, CSS, PHP, JavaScript. |
Почнемо з того, що скажемо кілька слів про написання віджетів. Якщо до цього ми писали весь код в процедурному стилі, то при написанні віджета нам потрібно використовувати об’єктно-орієнтований підхід.
У випадку з плагінами 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 створює поки що лише одну налаштування — назва віджета, яке буде виводитися в користувацької частини. В якості параметра метод приймає масив із збереженими налаштуваннями.
Якщо ми ніде не помилилися, то тепер в розділі віджетів ми побачимо новий віджет, який можемо використовувати і навіть зберегти першу налаштування для нього — його заголовок.
На цьому поточний урок завершено. Удачі і до нових зустрічей!