WordPress: ブロックパターンを簡単に作る



定義ファイルの追加によってブロックパターンを作成する

ブロックパターンはこれまで次のように作成していました。

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

Posted by

on

in category