Я использую WordPress Framework и мне нужно использовать Carbon Fields. Проблема в том, что все находится в каталоге lib, а затем разделено на несколько каталогов, таких как классы, функции, шорткоды, плагины и т. Д., Которые затем располагаются в пространстве имен соответственно \ ThemeName \ Functions, \ ThemeName \ Plugins и т. Д.
В документации Carbonfields говорится, что добавьте следующие строки в functions.php в корневом каталоге
use Carbon_Fields\Container;
use Carbon_Fields\Field;
Но как я могу использовать Carbon Fields из моего каталога плагинов?
Когда я пытаюсь выполнить следующее, я получаю сообщение об ошибке:
namespace \ThemeName\Plugins;
use Carbon_Fields\Container;
use Carbon_Fields\Field;
add_action( 'carbon_fields_register_fields', 'crb_attach_theme_options' );
function crb_attach_theme_options() {
Container::make( 'theme_options', __( 'Theme Options' ) )
->add_fields( array(
Field::make( 'text', 'crb_text', 'Text Field' ),
) );
}
add_action( 'after_setup_theme', 'crb_load' );
function crb_load() {
echo get_stylesheet_directory() . '/vendor/autoload.php';
require_once( get_stylesheet_directory() . '/vendor/autoload.php' );
\Carbon_Fields\Carbon_Fields::boot();
}
Я хочу иметь возможность поместить весь свой код углеродных полей в этот файл, но, находясь в пространстве имен, яполучить ошибку
Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'crb_load' not found or invalid function name in C:\xampp64\htdocs\sophie\wp-includes\class-wp-hook.php on line 286
В противном случае, если я удаляю пространство имен, оно работает без проблем.