定義ファイルの追加によってブロックパターンを作成する
ブロックパターンはこれまで次のように作成していました。
add_action( 'init', 'lf_register_bp', 10, 0 );
function lf_register_bp() {
$content = <<<'BP'
<!-- wp:shortcode -->
[lf_load_syntax_highlighter]
<!-- /wp:shortcode -->
BP;
register_block_pattern( 'listfreak/syntax_highlighter', [
'title' => 'シンタックスハイライター',
'content' => str_replace( "\r\n", "", $content ),
'categories' => [ 'listfreak' ],
'keywords' => [ 'syntax highlighter' ],
] );
}
WordPress 6.0 からは、テーマディレクトリの下に作成しておいた /patterns ディレクトリに次のような PHP ファイルを置くことによってもブロックパターンを作れるようになりました。
<?php
/**
* Title: シンタックスハイライター
* Slug: listfreak/syntax-highlighter
* Categories: listfreak
* Keywords: syntax highlighter
*/
?>
<!-- wp:shortcode -->
[lf_load_syntax_highlighter]
<!-- /wp:shortcode -->
できることはどちらでも同じようです。ただ従来の方法では関数の中にブロックパターンの実体であるHTMLを埋め込まざるを得ず、メンテナンス性があまりよくありませんでした。新しく作るなら後者のやり方のほうがよさそうです。
参考:”Place Patterns in the subfolder /patterns of your theme” (New features for working with patterns and themes in WordPress 6.0 – Make WordPress Core)
新しい固定ページを作成する際に「ページ作成パターン」選択ダイアログを表示させる
当サイトではリスト投稿に「まえがき」「リスト」「あとがき」といった統一的な見出しを付けているため、新規ページ用のブロックパターンを作成しています。
WordPress 6.0 からは、このようなページ単位でのパターン(ページ作成パターン)を登録しておくと、新規作成時に選択ダイアログが表示されるようになりました。
あるブロックパターンがページ作成パターンであるかどうかの識別は、ブロックタイプが core/post-content かどうかによって行われます。具体的には、先に紹介した後者のやり方でいえば
Block types: core/post-content
という行をコメント欄に書いておけばOK。
ただし現在のところこの機能が適用されるのは固定ページのみ。
参考:Page creation patterns in WordPress 6.0 – Make WordPress Core