Poet fornece tipo de postagem simples baseado em configuração, taxonomia, paleta de cores do editor, categoria de bloco, padrão de bloco e registro/modificação de bloco.
Tools
usando seu slug de página. Instale via Composer:
$ composer require log1x/poet
Comece publicando o arquivo de configuração do Poet usando Acorn:
$ wp acorn vendor:publish --provider= " Log1xPoetPoetServiceProvider "
Todas as configurações relacionadas ao Poet estão localizadas em config/poet.php
. Aqui você encontrará um exemplo de tipo de postagem de livro pré-configurado com algumas configurações comuns:
' post ' => [
' book ' => [
' enter_title_here ' => ' Enter book title ' ,
' menu_icon ' => ' dashicons-book-alt ' ,
' supports ' => [ ' title ' , ' editor ' , ' author ' , ' revisions ' , ' thumbnail ' ],
' show_in_rest ' => true ,
' has_archive ' => false ,
' labels ' => [
' singular ' => ' Book ' ,
' plural ' => ' Books ' ,
],
],
],
Na sua forma mais simples, um tipo de post pode ser criado simplesmente passando uma string:
' post ' => [
' book ' ,
],
Para modificar um tipo de post existente, simplesmente trate-o como se estivesse criando um novo tipo de post, passando apenas as opções de configuração que deseja alterar:
' post ' => [
' post ' => [
' labels ' => [
' singular ' => ' Article ' ,
' plural ' => ' Articles ' ,
],
],
],
Também é possível cancelar o registro de um tipo de postagem existente simplesmente passando false
:
' post ' => [
' book ' => false ,
],
Observe que alguns tipos de postagem integrados (por exemplo, Post) não podem ser cancelados convencionalmente.
Para opções de configuração adicionais para tipos de postagem, consulte:
register_post_type()
register_extended_post_type()
Nota : Não aninhe a configuração em uma chave
config
como mostrado na documentação dos CPTs estendidos.
Registrar uma taxonomia é semelhante a um tipo de postagem. Olhando em config/poet.php
, você verá uma taxonomia de gênero acompanhando o tipo de postagem de livro padrão:
' taxonomy ' => [
' genre ' => [
' links ' => [ ' book ' ],
' meta_box ' => ' radio ' ,
],
],
A opção de configuração mais relevante são links
que definem o tipo de post ao qual a taxonomia está conectada. Se nenhum link for especificado, o padrão será post
.
Para visualizar um arquivo para a taxonomia de gênero, copie o modelo Blade chamado archive.blade.php
para um novo arquivo chamado taxonomy-genre.blade.php
.
Na sua forma mais simples, você pode simplesmente passar uma string. O exemplo abaixo criaria uma taxonomia de tópico para o tipo de postagem Post:
' taxonomy ' => [
' topic ' ,
],
Tal como acontece com os tipos de postagem, para modificar uma taxonomia existente, basta passar apenas as opções de configuração que deseja alterar:
' taxonomy ' => [
' category ' => [
' labels ' => [
' singular ' => ' Section ' ,
' plural ' => ' Sections ' ,
],
],
],
Também como os tipos de postagem, você pode facilmente cancelar o registro de uma taxonomia existente simplesmente passando false
:
' taxonomy ' => [
' post_tag ' => false ,
' category ' => false ,
],
Para opções adicionais de configuração para taxonomias, consulte:
register_taxonomy()
register_extended_taxonomy()
Nota : Não aninhe a configuração em uma chave
config
como mostrado na documentação dos CPTs estendidos.
Poet fornece uma maneira fácil de registrar um bloco de Gutenberg com o editor usando uma visualização Blade que o acompanha para renderizar o bloco no frontend.
Os blocos são registrados usando o namespace/label
definido ao registrar o bloco no editor.
Se nenhum namespace for fornecido, o domínio de texto do tema atual será usado.
Registrar um bloco na maioria dos casos é tão simples quanto:
' block ' => [
' sage/accordion ' ,
],
Dado o bloco sage/accordion
, a visualização do Blade que o acompanha estaria localizada em views/blocks/accordion.blade.php
.
As visualizações de bloco têm as seguintes variáveis disponíveis:
$data
– Um objeto contendo os dados do bloco.$content
– Uma string contendo o conteúdo do InnerBlocks. Retorna null
quando vazio. Por padrão, ao verificar se $content
está vazio, ele é passado por um método para remover todas as tags e espaços em branco antes de avaliar. Isso garante que o editor fique inchado como nbsp;
ou tags <p></p>
vazias não fazem com que $content
sempre retorne true
quando usado em uma condicional.
Se você não deseja esse comportamento em um bloco específico, simplesmente registre-o como um array:
' block ' => [
' sage/accordion ' => [ ' strip ' => false ],
],
Se você precisar registrar atributos de bloco usando PHP em um determinado bloco, basta passar os atributos em um array ao registrar:
' block ' => [
' sage/accordion ' => [
' attributes ' => [
' title ' => [
' default ' => ' Lorem ipsum ' ,
' type ' => ' string ' ,
],
],
],
],
Considere um bloco acordeão registrado com um atributo title
e className
. Sua visualização pode ser semelhante a esta:
<div class="wp-block-accordion {{ $ data -> className ?? '' }}">
@ isset ( $ data -> title )
<h2>{!! $ data -> title !!}</h2>
@endisset
<div>
{!! $ content ?? ' Please feed me InnerBlocks. ' !!}
</div>
</div>
Poet fornece uma maneira fácil de registrar, modificar e cancelar o registro de categorias de blocos de Gutenberg. Olhando na configuração, você verá um exemplo comentado para uma categoria de Call to Action:
' block_category ' => [
' cta ' => [
' title ' => ' Call to Action ' ,
' icon ' => ' star-filled ' ,
],
],
Isso resultaria em uma categoria de bloco com um pacote de cta
. Depois que sua categoria de bloco for registrada, você deverá registrar um bloco em seu slug antes que a categoria apareça no editor.
Na sua forma mais simples, você pode simplesmente passar uma string:
' block_category ' => [
' my-cool-blocks ' ,
],
o que resultaria em uma categoria my-cool-blocks
convertendo automaticamente o slug para maiúsculas e minúsculas.
Você também pode especificar o título passando um valor para o seu slug:
' block_category ' => [
' my-cool-blocks ' => ' Best Blocks, World. ' ,
],
Assim como os tipos de postagem e taxonomias, modificar uma categoria de bloco existente é o mesmo que registrar uma:
' block_category ' => [
' layouts ' => ' Sections ' ,
' common ' => [ ' icon ' => ' star-filled ' ],
],
Você pode cancelar o registro de uma categoria de bloco existente simplesmente passando false
:
' block_category ' => [
' common ' => false ,
],
O Poet também pode registrar Block Patterns para você, com uma visualização Blade opcional para o conteúdo.
Os padrões são registrados usando o namespace/label
definido ao registrar o padrão no editor.
Se nenhum namespace for fornecido, o domínio de texto do tema atual será usado.
Registrar um bloco na maioria dos casos é tão simples quanto:
' block_pattern ' => [
' sage/hero ' => [
' title ' => ' Page Hero ' ,
' description ' => ' Draw attention to the main focus of the page, and highlight key CTAs ' ,
' categories ' => [ ' all ' ],
],
],
Você também pode registrar o conteúdo real do padrão aqui, usando a chave content
. Ou deixe em branco para usar uma visualização de lâmina correspondente.
' block_pattern ' => [
' sage/fake-paragraph ' => [
' title ' => ' Fake Paragraph ' ,
' description ' => ' Filler content used instead of actual content for testing purposes ' ,
' categories ' => [ ' all ' ],
' content ' => ' <!-- wp:paragraph --><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ratione nulla culpa repudiandae nisi nostrum et, labore earum repellendus porro, mollitia voluptas quam? Modi sint tempore deleniti nesciunt ab, perferendis et.</p><!-- /wp:paragraph --> ' ,
],
],
Dado o bloco sage/fake-paragraph
, se nenhuma chave content
for definida, então a visualização do Blade que a acompanha estará localizada em views/block-patterns/fake-paragraph.blade.php
.
Esta visualização do Padrão de Bloco pode ter esta aparência:
<!-- wp:paragraph -->
<p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ratione nulla culpa repudiandae nisi nostrum et, labore earum repellendus porro, mollitia voluptas quam? Modi sint tempore deleniti nesciunt ab, perferendis et.</p>
<!-- /wp:paragraph -->
Categorias de padrões de bloco podem ser adicionadas com o seguinte código na configuração do poet:
' block_pattern_category ' => [
' all ' => [
' label ' => ' All Patterns ' ,
],
],
Você pode especificar todas as propriedades de categoria, como label
, conforme o manual do editor de blocos.
Nota: Atualmente, se nenhuma categoria de padrão de bloco estiver disponível, a guia Padrões de bloco no editor irá travar quando clicada.
Poet tenta simplificar um pouco o registro de uma paleta de cores com o editor, não exigindo uma marcação de array tão rígida e frágil.
Embora você possa passar o array diretamente, você também pode registrar cores simplesmente passando um slug junto com uma cor e deixando o Poet cuidar do resto.
' palette ' => [
' red ' => ' #ff0000 ' ,
' blue ' => ' #0000ff ' ,
],
Alternativamente à passagem de um array, o Poet também aceita um arquivo JSON
contendo sua paleta de cores. O Poet geralmente procurará por este arquivo em dist/
por padrão.
' palette ' => ' colors.json ' ,
Se você estiver usando o plugin Palette Webpack, você também pode simplesmente passar true
para usar automaticamente o palette.json
gerado durante a construção.
' palette ' => true ,
Se você descobrir um bug no Poet, abra um problema.
Contribuir, seja por meio de relações públicas, relatando um problema ou sugerindo uma ideia, é incentivado e apreciado.
Poet é fornecido sob a licença do MIT.