Carbon Fields для WordPress
Установка
Качаем отсюда - https://carbonfields.net/zip/latest/ и устанавливаем через админку. Не распаковывая отправляем на установку zip-архив.
Интерфейса в админке нет, всё подключается php кодом, но это скорее плюс, чем минус.
Весь код пишем в файле functions.php, либо, как я рекомендую делать, выносим в отдельный файл и подключаем в function.php через require_once().
Подключение
Во-первых, нужно подключить классы:
use Carbon_Fields\Container;
use Carbon_Fields\Field;
Во-вторых, функция добавления полей подключается через хук:
add_action( 'carbon_fields_register_fields', 'crb_attach_post_options' );
function crb_attach_post_options() { ... }
Создание
Есть три сущности:
- Container - создает область на странице, куда будут добавлены поля;
- Field - поля, которые можно положить в контейнер;
- Data Storage - управляет хранением данных, можно покаю.
Создать контейнер
Внутри нашей функции вызываем функцию для создания контейнера
Container::make( 'post_meta', 'Настройки страницы' )
Это создаст контейер на всех страницах, постах и кастомных постах. Название контейнера будет 'Настройки страницы'. Существуют разные варианты мест куда поместить контейнер, но об этом позже.
Сейчас создадим поле и получим минимально рабочий код.
Создание полей
Поля создаются вызовом метода add_fields:
Container::make( 'post_meta', 'Настройки страницы' )->add_fields( array(
Field::make( 'text', 'crb_phone_number', 'Телефон' ),
Field::make( 'text', 'crb_mail_address', 'Почта' ),
));
Минимально рабочий код
Мы подключили классы плагина, создали функцию, добавили в нее контейнер, добавили в него поля и подключили всё это через хук.
use Carbon_Fields\Container;
use Carbon_Fields\Field;
add_action( 'carbon_fields_register_fields', 'crb_attach_post_options' );
function crb_attach_post_options() {
Container::make( 'post_meta', 'Настройки страницы' )->add_fields( array(
Field::make( 'text', 'crb_width', 'Ширина' ),
Field::make( 'text', 'crb_height', 'Высота' ),
));
}