Intereting Posts
Как выполнить резервное копирование WordPress с помощью wp-cli? Как редактировать HTML-код заголовка Как правильный стиль списка отображается в firefox? Разная компоновка, основанная на количестве сообщений? Как узнать, был ли пользователь включен и создал меню WordPress get_option и update_option возвращены, введенные в поле текстового поля Как вывести параметр базы данных, который является массивом в массив get_posts? Черно-белые миниатюры Действие внутри другого действия не работает Получение ссылки ниже нижнего колонтитула – хотите удалить ее. Как? Проверить значение get_post после входа wp-admin Перенаправление после удаления сообщения в Frontend Исключить черновики во всех () представлениях edit.php Использование delete_post_meta для удаления нескольких выбранных параметров Автоматический вход в систему Пользователи после регистрации и отправки подтверждения по электронной почте

Использование углеродных полей в пользовательском классе плагинов

У меня есть плагин, который до сих пор не имеет функциональности и имеет структуру

class Test { public function __construct() { } } $wpTest = new Test(); 

Мне нужно использовать Carbon Fields, и когда я установил эту библиотеку, я изменил структуру в соответствии с инструкциями, только с адаптацией к OOP

 use Carbon_Fields\Container; use Carbon_Fields\Field; class Test { public function __construct() { add_action( 'carbon_fields_register_fields', array( $this, 'crb_attach_theme_options') ); add_action( 'after_setup_theme', array( $this , 'crb_load' ) ); } public function crb_load() { require_once( 'vendor/autoload.php' ); \Carbon_Fields\Carbon_Fields::boot(); } public function crb_attach_theme_options() { Container::make( 'theme_options', __( 'Plugin Options', 'crb' ) ) ->add_fields( array( Field::make( 'text', 'crb_text', 'Text Field' ), ) ); } } $wpTest = new Test(); 

Но это не работает, как мне это исправить?

Solutions Collecting From Web of "Использование углеродных полей в пользовательском классе плагинов"

Я нашел ответ на свой вопрос. Отчасти проблема заключалась в том, что я подключил vendor/autoload.php после доступа к __construct() .

Пример решения этой задачи ниже

 use Carbon_Fields\Container; use Carbon_Fields\Field; class PluginOption { public function __construct() { require_once( 'vendor/autoload.php' ); \Carbon_Fields\Carbon_Fields::boot(); add_action( 'carbon_fields_register_fields', array( $this, 'crb_attach_theme_options') ); } public function crb_attach_theme_options() { Container::make( 'theme_options', __( 'Plugin Option', 'crb' ) ) ->add_fields( array( Field::make( 'text', 'crb_text', 'Text Field' ), ) ); } } $wpTest = new PluginOption();