Я пишу плагин Wordpress для создания пользовательских блоков Гутенберга. Я использую пакет composer, который называется Carbon Fields. Но когда я пытаюсь использовать пакет, я получаю сообщение об ошибке:
Неустранимая ошибка: необработанная ошибка: класс 'Carbon_Fields \ Block' не найден в / my-path / my-plugin / my-plugin. php в строке 10 .
Странно то, что я могу без проблем использовать классы Container и Field.
Примечание
Я только что включил базовую c структуру файла и код, чтобы вы могли сосредоточиться на важных вещах.
Структура файла
- my-plugin
- vendor
- htmlburger
- core
- Block. php
- Carbon_Fields. php
- Контейнер. php
- Поле. php
- my-plugin. php
Код
my-plugin. php
add_action( 'after_setup_theme', 'carbon_fields_init' );
function carbon_fields_init() {
require_once plugin_dir_path( __FILE__ ) . 'vendor/autoload.php';
\Carbon_Fields\Carbon_Fields::boot();
}
use \Carbon_Fields\Block;
use \Carbon_Fields\Filed;
Block::make( __( 'Hero Image' ) )
->add_fields( array(
Field::make( 'text', 'heading', __( 'Block Heading' ) ),
) )
->set_render_callback( function ( $fields, $attributes, $inner_blocks ) {
?>
<div class="block">
<div class="block__heading">
<h1><?php echo esc_html( $fields['heading'] ); ?></h1>
</div><!-- /.block__heading -->
<?php
} );
Блок. php
namespace Carbon_Fields;
class Block extends Container {
public static function make() {
return call_user_func_array( array( 'parent', 'make' ), array_merge( array( 'block' ), func_get_args() ) );
}
}