E tem mais um vídeo no canal! \o/ Nesse eu explico como criar blocos complexos para o Gutenberg em menos de 10 minutos usando o Carbon Fields como framework.
Veja o código completo do plugin:
<?php /** * Plugin Name: Filmes * Text Domain: filmes */ use Carbon_Fields\Block; use Carbon_Fields\Field; defined( 'ABSPATH' ) || exit; function filmes_load() { require_once( 'vendor/autoload.php' ); \Carbon_Fields\Carbon_Fields::boot(); } add_action( 'after_setup_theme', 'filmes_load' ); function filmes_attach_theme_options() { Block::make( 'Filme' ) ->add_fields( array( Field::make( 'text', 'nome_filme', 'Nome do filme' ), Field::make( 'text', 'diretor', 'Diretor' ), Field::make( 'image', 'poster', 'Poster' ), Field::make( 'complex', 'elenco', 'Elenco' ) ->add_fields( array( Field::make( 'text', 'ator', 'Ator' ), ) ), ) ) ->set_render_callback( function ( $block ) { ob_start(); ?> <div class="block"> <div class="block__heading"> <h1><?php echo esc_html( $block['nome_filme'] ); ?></h1> </div><!-- /.block__heading --> <div class="block__image"> <?php echo wp_get_attachment_image( $block['poster'], 'full' ); ?> </div><!-- /.block__image --> <div class="block__director"> <h2><?php echo esc_html( $block['diretor'] ); ?></h2> </div><!-- /.block__heading --> <div class="block__cast"> <ul> <?php foreach( $block['elenco'] as $ator ) { ?> <li> <?php echo esc_html( $ator['ator'] ); ?> </li> <?php } ?> </ul> <?php ?> </div><!-- /.block__content --> </div><!-- /.block --> <?php return ob_get_flush(); } ); } add_action( 'carbon_fields_register_fields', 'filmes_attach_theme_options' );
Importante: não se esqueça de rodar o comando do composer para trazer os arquivos do Carbon Fields para o seu plugin:
composer require htmlburger/carbon-fields
Como expliquei no último post, a recomendação oficial para usar plugins assim é usá-los dentro do seu código e não como outro plugin. Por isso, a primeira coisa que fazemos é iniciar o Carbon Fields na action after_setup_theme. Depois usamos a action carbon_fields_register_fields para criar o bloco, com seus campos e sua função de renderização.
O Carbon Fields oferece mais métodos para configurar o seu bloco. É possível, por exemplo, configurar a descrição e o ícone. Veja mais nesta seção da documentação oficial do framework.
Não se esqueça de se inscrever no canal, curtir, compartilhar e comentar!