Poet предоставляет простой тип сообщения на основе конфигурации, таксономию, цветовую палитру редактора, категорию блока, шаблон блока и регистрацию/изменение блока.
Tools
, используя их фрагмент страницы. Установить через Composer:
$ composer require log1x/poet
Начните с публикации файла конфигурации Poet с помощью Acorn:
$ wp acorn vendor:publish --provider= " Log1xPoetPoetServiceProvider "
Вся конфигурация, связанная с Poet, находится в config/poet.php
. Здесь вы найдете пример типа публикации «Книга», предварительно настроенного с несколькими общими настройками:
' 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 ' ,
],
],
],
В простейшей форме тип сообщения можно создать, просто передав строку:
' post ' => [
' book ' ,
],
Чтобы изменить существующий тип сообщения, просто относитесь к нему так, как будто вы создаете новый тип сообщения, передавая только те параметры конфигурации, которые вы хотите изменить:
' post ' => [
' post ' => [
' labels ' => [
' singular ' => ' Article ' ,
' plural ' => ' Articles ' ,
],
],
],
Также можно отменить регистрацию существующего типа сообщения, просто передав false
:
' post ' => [
' book ' => false ,
],
Обратите внимание, что некоторые встроенные типы сообщений (например, сообщения) нельзя отменить обычным способом.
Дополнительные параметры конфигурации типов сообщений см. в разделе:
register_post_type()
register_extended_post_type()
Примечание . Не вставляйте конфигурацию в ключ
config
, как показано в документации по расширенным CPT.
Регистрация таксономии аналогична регистрации типа записи. Заглянув в config/poet.php
, вы увидите таксономию «Жанр», соответствующую типу публикации «Книга» по умолчанию:
' taxonomy ' => [
' genre ' => [
' links ' => [ ' book ' ],
' meta_box ' => ' radio ' ,
],
],
Наиболее подходящим вариантом конфигурации являются links
, которые определяют тип сообщения, к которому подключена таксономия. Если ссылка не указана, по умолчанию будет post
.
Чтобы просмотреть архив таксономии жанра, скопируйте шаблон Blade с именем archive.blade.php
в новый файл с именем taxonomy-genre.blade.php
.
В простейшей форме вы можете просто передать строку. В приведенном ниже примере будет создана таксономия «Тема» для типа публикации «Сообщение»:
' taxonomy ' => [
' topic ' ,
],
Как и в случае с типами сообщений, чтобы изменить существующую таксономию, просто передайте только те параметры конфигурации, которые вы хотите изменить:
' taxonomy ' => [
' category ' => [
' labels ' => [
' singular ' => ' Section ' ,
' plural ' => ' Sections ' ,
],
],
],
Как и в случае с типами сообщений, вы можете легко отменить регистрацию существующей таксономии, просто передав false
:
' taxonomy ' => [
' post_tag ' => false ,
' category ' => false ,
],
Дополнительные параметры конфигурации таксономий см.:
register_taxonomy()
register_extended_taxonomy()
Примечание . Не вставляйте конфигурацию в ключ
config
, как показано в документации по расширенным CPT.
Poet предоставляет простой способ зарегистрировать блок Гутенберга в редакторе, используя сопутствующее представление Blade для рендеринга блока во внешнем интерфейсе.
Блоки регистрируются с использованием namespace/label
, определенного при регистрации блока в редакторе.
Если пространство имен не указано, вместо него будет использоваться текстовый домен текущей темы.
Регистрация блока в большинстве случаев проста:
' block ' => [
' sage/accordion ' ,
],
Учитывая блок sage/accordion
, сопутствующее представление Blade будет расположено по views/blocks/accordion.blade.php
.
Представления блоков имеют следующие доступные переменные:
$data
– объект, содержащий данные блока.$content
– строка, содержащая содержимое InnerBlocks. Возвращает null
, если оно пусто. По умолчанию при проверке пустости $content
он передается через метод для удаления всех тегов и пробелов перед оценкой. Это гарантирует, что редактор будет раздуваться, как nbsp;
или пустые теги <p></p>
не приводят к тому, что $content
всегда возвращает true
при использовании в условии.
Если вы не хотите такого поведения для определенного блока, просто зарегистрируйте его как массив:
' block ' => [
' sage/accordion ' => [ ' strip ' => false ],
],
Если вам нужно зарегистрировать атрибуты блока с помощью PHP для определенного блока, просто передайте атрибуты в массиве при регистрации:
' block ' => [
' sage/accordion ' => [
' attributes ' => [
' title ' => [
' default ' => ' Lorem ipsum ' ,
' type ' => ' string ' ,
],
],
],
],
Рассмотрим блок аккордеона, зарегистрированный с помощью атрибута title
и className
. Ваше мнение может выглядеть примерно так:
<div class="wp-block-accordion {{ $ data -> className ?? '' }}">
@ isset ( $ data -> title )
<h2>{!! $ data -> title !!}</h2>
@endisset
<div>
{!! $ content ?? ' Please feed me InnerBlocks. ' !!}
</div>
</div>
Poet предоставляет простой способ регистрации, изменения и отмены регистрации категорий блоков Гутенберга. Заглянув в конфигурацию, вы увидите закомментированный пример для категории «Призыв к действию»:
' block_category ' => [
' cta ' => [
' title ' => ' Call to Action ' ,
' icon ' => ' star-filled ' ,
],
],
Это приведет к появлению категории блоков с фрагментом cta
. После регистрации категории блока вы должны зарегистрировать блок в его пуле, прежде чем категория появится в редакторе.
В простейшей форме вы можете просто передать строку:
' block_category ' => [
' my-cool-blocks ' ,
],
что приведет к тому, что категория my-cool-blocks
автоматически преобразует слаг в регистр заголовка.
Вы также можете указать заголовок, передав значение в свой слаг:
' block_category ' => [
' my-cool-blocks ' => ' Best Blocks, World. ' ,
],
Как и типы сообщений и таксономии, изменение существующей категории блока аналогично ее регистрации:
' block_category ' => [
' layouts ' => ' Sections ' ,
' common ' => [ ' icon ' => ' star-filled ' ],
],
Вы можете отменить регистрацию существующей категории блоков, просто передав false
:
' block_category ' => [
' common ' => false ,
],
Poet также может зарегистрировать для вас шаблоны блоков с дополнительным представлением Blade для контента.
Шаблоны регистрируются с использованием namespace/label
, определенного при регистрации шаблона в редакторе.
Если пространство имен не указано, вместо него будет использоваться текстовый домен текущей темы.
Регистрация блока в большинстве случаев проста:
' block_pattern ' => [
' sage/hero ' => [
' title ' => ' Page Hero ' ,
' description ' => ' Draw attention to the main focus of the page, and highlight key CTAs ' ,
' categories ' => [ ' all ' ],
],
],
Здесь вы также можете зарегистрировать фактическое содержимое шаблона, используя ключ content
. Или оставьте это поле пустым, чтобы использовать соответствующий вид лезвия.
' 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 --> ' ,
],
],
Учитывая блок sage/fake-paragraph
, если ключ content
не определен, тогда сопутствующее представление Blade будет расположено по views/block-patterns/fake-paragraph.blade.php
.
Это представление блочного массива может выглядеть следующим образом:
<!-- 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 -->
Категории шаблонов блоков можно добавить с помощью следующего кода в конфигурации поэта:
' block_pattern_category ' => [
' all ' => [
' label ' => ' All Patterns ' ,
],
],
Вы можете указать все свойства категории, такие как label
, согласно руководству по редактору блоков.
Примечание. В настоящее время, если категории шаблонов блоков вообще недоступны, вкладка «Массивы блоков» в редакторе аварийно завершает работу при нажатии на нее.
Poet пытается немного упростить регистрацию цветовой палитры в редакторе, не требуя такой строгой и хрупкой разметки массива.
Хотя вы, конечно, можете передать указанный массив напрямую, вы также можете регистрировать цвета, просто передавая фрагмент вместе с цветом и позволяя Poet обрабатывать все остальное.
' palette ' => [
' red ' => ' #ff0000 ' ,
' blue ' => ' #0000ff ' ,
],
В качестве альтернативы передаче массива Poet также принимает файл JSON
, содержащий вашу цветовую палитру. Poet обычно ищет этот файл в dist/
по умолчанию.
' palette ' => ' colors.json ' ,
Если вы используете плагин Palette Webpack, вы также можете просто передать true
, чтобы автоматически использовать сгенерированный файл palette.json
во время сборки.
' palette ' => true ,
Если вы обнаружили ошибку в Poet, пожалуйста, откройте проблему.
Вклад, будь то посредством PR, сообщения о проблеме или предложения идеи, поощряется и ценится.
Poet предоставляется по лицензии MIT.