Poet 提供簡單的基於配置的帖子類型、分類、編輯器調色板、區塊類別、區塊模式和區塊註冊/修改。
Tools
子選單。 透過 Composer 安裝:
$ composer require log1x/poet
首先使用 Acorn 發布 Poet 設定檔:
$ 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
。
若要查看流派分類的存檔,請將名為archive.blade.php
的 Blade 範本複製到名為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
塊的塊類別。註冊區塊類別後,您必須先將區塊註冊到其 slug,然後該類別才會出現在編輯器中。
在最簡單的形式中,您可以簡單地傳遞一個字串:
' block_category ' => [
' my-cool-blocks ' ,
],
這將導致my-cool-blocks
類別自動將 slug 轉換為標題大小寫。
您也可以將值傳遞給 slug 來指定標題:
' block_category ' => [
' my-cool-blocks ' => ' Best Blocks, World. ' ,
],
與貼文類型和分類法一樣,修改現有的區塊類別與註冊區塊類別相同:
' block_category ' => [
' layouts ' => ' Sections ' ,
' common ' => [ ' icon ' => ' star-filled ' ],
],
您可以透過簡單地傳遞false
來取消註冊現有的區塊類別:
' block_category ' => [
' common ' => false ,
],
Poet 還可以為您註冊區塊模式,並提供可選的內容刀片視圖。
使用在編輯器中註冊模式時定義的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 試圖透過不需要如此嚴格、脆弱的陣列標記來稍微簡化在編輯器中註冊調色板的過程。
雖然您當然可以直接傳遞所述數組,但您也可以透過簡單地傳遞 slug 和顏色並讓 Poet 處理其餘部分來註冊顏色。
' palette ' => [
' red ' => ' #ff0000 ' ,
' blue ' => ' #0000ff ' ,
],
除了傳遞數組之外,Poet 還接受包含調色板的JSON
檔案。預設情況下,Poet 通常會在dist/
中尋找該檔案。
' palette ' => ' colors.json ' ,
如果您使用 Palette Webpack 插件,您也可以簡單地傳遞true
來在建置過程中自動使用產生的palette.json
。
' palette ' => true ,
如果您發現 Poet 中的錯誤,請提出問題。
無論是透過 PR、報告問題或提出想法,我們都鼓勵並欣賞您做出貢獻。
Poet 是根據 MIT 許可證提供的。