Метабокси в WordPress, створення та видалення
В основному метабокси в WordPress потрібні для зручності (ну крім стандартних, зрозуміло), тому що всі налаштування, які ви можете додати у власному метабоксі, можна замінити використанням довільних полів.
remove_meta_box() - видалення метабоксів
- $id (рядок) ідентифікатор метабоксу, його можна знайти у вихідному коді сторінці, трохи нижче я перерахую айдішники всіх стандартних метабоксів.
- $page (рядок) тип постів, на сторінці створення/редагування яких потрібно видалити метабокс, наприклад post, page.
- $context (рядок) розташування метабоксу, наприклад normal, advanced або side
Проста вставка цієї функції кудись не прокотить, тому наводжу приклад: .
Код вставляти уfunctions.php поточної теми.
Опис стандартних метабоксів у WordPress
Для того, щоб не потрібно було паритися і нишпорити в коді, перерахую айдішники стандартних метабоксів.







Способи додавання метабоксів
register_post_type()
Я думаю ви знаєте про типи записів у вордпрес, так ось, для їх створення використовується ця функція. У ній можна відразу і визначити які метабокси дані тип буде підтримувати.
У прикладі перераховано лише мінімум необхідних параметрів, але він однаково робітник.
register_taxonomy_for_object_type()
Функція приписує таксономію вже створеного типу записів, отже, додається і метабокс:
- $taxonomy (рядок) (обов'язковий) назва таксономії, наприклад post_tag,
- $object_type (рядок) (обов'язковий)Тут вкажіть тип посту, для якого потрібно привласнити таксономію, наприклад post, page, game;
Цю функцію теж просто так не заюзати, тому приклад:
add_post_type_support()
Дозволяє додати якийсь із стандартних боксів.
- $post_type (рядок) (обов'язковий) тип посту (максимум 20 символів до речі),
- $supports (рядокмасив) назви стандартних метабоксів, які перераховані двома прикладами вище;
add_meta_box()
А ось тут вже можна повеселитися, ви зможете додати абсолютно будь-який власний метабокс, неважливо, чи це будуть поля для вказівки мета-тегів або завантажувач зображень в галерею.
- $id (рядок) (обов'язковий) HTML-атрибут id для блоку div майбутнього метабоксу,
- $title (рядок) (обов'язковий) заголовок,
- $callback (функція) (обов'язкове) функція, яка буде заповнювати метабокс, потрібно вказати назву функції у вигляді рядка,
- $post_type (рядок) (обов'язковий) тип записів,
- $context (рядок) у якій частині сторінки вставити метабокс (normal, side, advanced), за замовчуванням - advanced,
- $priority (рядок) пріоритет, чим він вищий, тим ближче до верхньої частини сторінки розташовуватиметься метабокс, (high, core, default або low), за замовчуванням — default,
- $args (масив) аргументи для callback-функції.
На відміну від попередніх способів, тут додавання проходитиме в кілька етапів, подивимося на прикладі:
У результаті на сторінці редагування посту отримуємо такий метабоксик:
Код можна вставити прямо в такому вигляді у functions.php - і все буде працювати, якщо звичайно у вас немає функцій, назви яких збігаються змоїми.
Додавання метабоксів з використанням класу
Насправді це просто приголомшлива штука!
- достатньо один раз описати клас і потім скільки завгодно використовувати його для додавання метабоксів на сайті,
- не доведеться щоразу паритися з приводу HTML полів введення, як у випадку з функцією add_meta_box(),
- все, що потрібно для створення нового метабоксу - додати кілька параметрів масив;
А тепер у мене подарунок для вас! Вже готовий клас із усіма необхідними типами полів.
Розповім, як його використовувати за два кроки. Перший крок – скопіюйте до себе наступний блок із кодом. Якщо не знаєте, куди його засунути — суніть у functions.php, не помилитеся.
Тепер крок другий – створюємо об'єкти та передаємо їм усі параметри метабоксів.
У наступному блоці коду я створюю два метабокси, один центром з кількома полями, другий теж центром з одним полем — чекбоксом.
Ось скріншот метабоксів, що вийшли з адмінки, зі сторінки редагування запису:

Звернення до метаданих посту/сторінки
Зрозуміло, що потім всі ці налаштування потрібно якось задіяти на сайті. Для цього відмінно підійде функція:
- $post_id (ціле) (обов'язкове) ID посту або сторінки,
- $key (рядок) (обов'язкове) значення довільного поля,
- $single (логічне) якщо true - повертає рядок, false - масив, за замовчуванням - false;
Приклад використання – виведемо значення довільного поля meta1_field_1, тобто текстового поля з попереднього прикладу:
У міру вдосконалення класу вміст цієї посади оновлюватиметься.
Михайло Рудрастих
Вперше познайомився з WordPress у 2009 році. З 2014року мене можна зустріти на WordCamp - офіційній цукерці з WordPress, іноді там виступаю. Також зараз веду курси з WordPress в Epic Skills.
Якщо вам потрібна допомога з вашим сайтом або розробка з нуля, можу порекомендувати хороших хлопців. Просто напишіть мені.