WordPressは、誰でも簡単にテキストやマルチメディアのコンテンツを作成し、共有することができる強力なオンラインパブリッシングツールです。それどころか、デザイナー、マーケティング担当者、開発者に便利な万能ツールとすら言えるでしょう。

つまり、WordPressは有能な仕事仲間として、さまざまな職業での成功を後押ししてくれます。

このような背景から、Kinstaでは、WordPress開発者におすすめのスキル習得のコツを各種記事でご紹介しています。

また、Gutenbergカスタムブロックについての動画もご用意しています。

そして、たしかにGutenbergの開発スキルでキャリアアップを目指すことはできますが、WordPressサイトで高度なレイアウトを作成するのに、必ずしも開発者である必要はありません。

WordPressを使って、手間をかけずに高度なブロックレイアウトを簡単に作成することができます。今回の記事では、ブロックパターンに焦点を当てたいと思います。

ブロックパターンとは

ブロックパターンとは、構築済みブロックのグループで、コンテンツに追加したり、含まれるブロックと同じデザインツールを使って編集したりすることができます。

WordPress 5.5で初めて導入され、サイト管理者やコンテンツ制作者は、数回クリックするだけで、すぐに使える複雑なネスト構造のブロックをコンテンツに含めることができます。

ブロックテーマには通常、ブロックインサーターから直接コンテンツに追加できるブロックパターンがあります。WordPress 6.7のデフォルトテーマであるTwenty Twenty-Fiveには、70以上のブロックパターンが含まれています。

Twenty Twenty-Fiveテーマのブロックパターン
Twenty Twenty-Fiveテーマのブロックパターン

もちろん、テーマに付属するパターンに依存する必要はありません。

WordPress公式のブロックパターンディレクトリにも、使用可能なブロックパターンが多数あります。

また、Patterns APIやGutenbergの編集ツールを使ってパターンを自由に作成することも可能です。作成した独自のパターンは、サイトで使用したり、他のサイトにエクスポートしたり、パターンディレクトリで公開したりすることができます。

WordPress 6.3以降、まったく新しいパターンシステムにより、パターン作成プロセスがより柔軟になりました。どのようなレイアウトを構築しているのか、カスタマイズがサイト全体にどのような効果をもたらすのかがわかりやすくなっています。

ブロックパターンには、大きく以下2つの種類に分けられます。

  • 同期ブロックパターン
  • 標準(非同期)ブロックパターン

この2つの主な違いは、変更が適用される範囲にあります。前者に加えた変更は、サイト全体で使われるパターンすべてに適用されます。対照的に、後者の場合は、その特定のパターンのみに変更が適用されます。

ブロックパターンについては、まだまだ語るべき点が多数あります。以下、ブロックパターンの仕組みとWordPress最新バージョンで導入された編集機能の活用方法をご紹介していきます。

既存のブロックパターン

構築済みのパターンは、非同期ブロックパターンです。つまり、このブロックパターンに加えた変更は、編集中の特定のパターンにのみ適用され、サイト内の他の投稿や固定ページに追加している他のパターンには反映されません

組み込まれたパターンを使って、画像やテキスト、スタイルを変更したり、要素を追加、削除したりしながら、その場でカスタマイズできるブロックレイアウトを含めることができます。

独自のブロックパターンを作成したら、サイト上の任意の場所に設置し、エディターに内蔵された機能を使って数回程度のクリックで編集可能です。

WordPress 6.7のパターンを使ったブロックインサーター
WordPress 6.7のパターンを使ったブロックインサーター

ブロックインサーターの「パターン」タブ、またはサイトエディターの「パターン」管理セクションから既存のブロックパターンを閲覧、挿入したり、ブロックパターンディレクトリでパターンを探したりすることができます。
ブロックパターンディレクトリでパターンを検索
ブロックパターンディレクトリでパターンを検索

ディレクトリでパターンを検索し、気に入ったものがあれば、そのページ上部にある「Copy pattern(パターンをコピー)」をクリックして、コンテンツに貼り付けることができます。

ブロックパターンディレクトリで「Copy pattern」をクリックしてパターンをコピー
ブロックパターンディレクトリで「Copy pattern」をクリックしてパターンをコピー

コピーしたパターンはエディターに直接貼り付け可能
コピーしたパターンはエディターに直接貼り付け可能

パターンに含まれるブロックは、登録されているパターンやサイト上の他のパターンに影響を与えることなく、自由にカスタマイズできます。

同期/非同期ブロックパターン

前述したとおり、WordPress 6.3ではパターンシステムが整理され、一貫性が増しています。Gutenbergで直接カスタムパターンを作成し、コーディングなしでWordPress管理画面から管理できます。

作成可能なブロックパターンは、同期と非同期の2種類です。

開発者の視点では、カスタムブロックパターンはwp_blockカスタム投稿タイプとしてWordPressのデータベースに登録され、wp_pattern_sync_statusメタフィールドはパターンの同期ステータスを保存します。

wp_pattern_sync_statusメタフィールドは、ブロックパターンの同期ステータスを格納するために使用される
wp_pattern_sync_statusメタフィールドは、ブロックパターンの同期ステータスを格納するために使用される

最新のパターン管理システムにより、サイトや投稿エディターから直接、同期/非同期のブロックパターンを作成できるのはすでに触れた通り。ブロックレイアウトをデザインし、ブロックを選択して、ツールバーの3つの点をクリックして、「パターンを作成」をクリックします。

以下の例では、グループブロック、見出し、段落、ボタンから同期パターンを作成します。

パターンを作成
パターンを作成

パターンを作成」をクリックすると、パターンの名前とカテゴリーを入力するプロンプトが表示されます。

新規同期パターンを作成
新規同期パターンを作成

以上で完了です。同期パターンは、サイトエディターの「パターン」セクションの「マイパターン」からアクセスできます。

サイトエディターのカスタムパターン
サイトエディターのカスタムパターン

ここではパターンをプレビューしたり、パターンの同期状態を確認したりすることができます。

パターンのプレビュー
パターンのプレビュー

その後、パターンエディターを起動し、ブロックパターンを編集することができます。

サイトエディターのカスタムパターン
サイトエディターのカスタムパターン

繰り返しになりますが、同期パターンに加える変更は、サイト内に追加したその他の同じパターンにも適用されます。非同期パターンは、変更を加えるパターンのみ変更されます。これは、この2つのパターンが異なる方法で処理されるためです。この違いを理解するには、カスタムパターンの非同期のコピーを作成し、新規投稿または固定ページを作成して、2つのパターンを追加します。これでコードエディターに切り替えてコードを確認してみましょう。

コードエディターで比較される2つの異なるブロックパターン
コードエディターで比較される2つの異なるブロックパターン

同期ブロックは以下のコードで生成されます。

<!-- wp:block {"ref":512} /-->

上のコードは、WordPressがID 512の投稿を取得し、画面に表示するHTMLを生成します。2番目のブロックはIDで識別されません。コードエディターはパターンを構成するマークアップ全体を保持します。

同期パターンは、サイトの複数のページや他のサイトに含めたい要素を構築するのに特に便利になります。CTAやバナー広告、価格表などが好例です。

前述のとおり、WordPressはカスタムブロックパターンをwp_block投稿タイプとみなし、wp_postsテーブルに保存します。

パターンを作成したら、「パターン」メニューから管理することができます。以下のいずれかの方法でアクセス可能です。

  • ウェブサイトのWordPress URLに「/wp-admin/edit.php?post_type=wp_block」を追加
  • ブロックインサーターの「すべてのパターンを表示」をクリック
  • サイトエディターの「マイパターン」を開く

WordPressのパターン管理ページ
WordPressのパターン管理ページ

このページでは、以下の操作を行うことができます。

  • パターンを編集、ゴミ箱へ移動、またはJSONとしてエクスポート
  • JSONからパターンをインポート
  • 新規パターンを作成

またサイトエディターでは、パターンの複製や名前の変更もできます。

同期パターンの上書き

WordPress 6.6で導入された同期パターンの上書きは、Block Bindings APIを利用して両方の種類のパターンの特徴を兼ねた3つ目のパターンになります。

同期パターンの上書きは、サイト上のすべての場所で同じ構造を維持しながら、非同期パターンのように、パターンに含まれる特定のブロックの内容を変更することができます。「非同期の個々の要素を持つ同期パターン」といった感じになります。

同期パターンの上書きの仕組みを見てみましょう。

ステップ1. 「パターン」を開き、既存のパターンの1つを複製します(今回は例として、Twenty Twenty-Fiveの「Pricing, 2 columns」パターンを使用)。

既存のパターンを複製
既存のパターンを複製

ステップ2. 「マイパターン」を開き、複製した同期パターンを見つけます。これを開いて上書きするブロックを1つ選択します(この例では「見出し」ブロック)。左サイドバーの「ブロック」設定で下部にある「高度な設定」を展開し、「上書きを有効化」をクリックします。

上書きを有効化
上書きを有効化

クリックすると、上書きの名前を追加するプロンプトが表示されます。

パターンの上書きを有効にした後は無効化することも可能
パターンの上書きを有効にした後は無効化することも可能

ステップ3. 上書きしたいブロックごとに同様のステップを繰り返します。完了したら、新規投稿または固定ページを作成し、カスタムパターンを追加します。

投稿エディターでパターンを選択
投稿エディターでパターンを選択

ステップ4. 投稿エディターで、ブロックの内容を上書きに変更し、投稿を保存して、フロントエンドでプレビューを確認しましょう。

投稿エディターで上書きするブロックパターン
投稿エディターで上書きするブロックパターン

投稿エディターでパターンの上書きを編集すると、サイドバーの「ブロック」設定に編集可能なフィールドが表示されます。上の例では、見出しと複数の段落を上書き可能です。パターンの上書きは、サイト上の任意の場所に好きなだけ追加でき、同じ構造を表示する各パターンは、それぞれカスタマイズ可能です。

サイトエディターでパターンを開き、コードエディタに切り替えると、コードは以下のようになります。

<!-- wp:heading 
{
	"textAlign":"center",
	"metadata":{
		"name":"Heading",
		"bindings":{
			"__default":{
				"source":"core/pattern-overrides"
			}
		}
	},
	"align":"wide"
} 
-->
<h2 class="wp-block-heading alignwide has-text-align-center">Pricing</h2>
<!-- /wp:heading -->

<!-- wp:paragraph 
{
	"align":"center",
	"metadata":{
		"name":"Subtitle",
		"bindings":{
			"__default":{
				"source":"core/pattern-overrides"
			}
		}
	}
} 
-->
<p class="has-text-align-center">Cancel or pause anytime.</p>
<!-- /wp:paragraph -->

ブロックデリミタの中にあるmetadata.bindingsプロパティによって、「見出し」ブロックと「段落」ブロックが編集可能にします。また__defaultプロパティは、サポートされているすべての属性を特定のソース("core/pattern-overrides")に接続するように指示します。

投稿エディターでコードエディターに切り替えると、以下のようになります。

<!-- wp:block 
{
	"ref":518,
	"content":{
		"Heading":{
			"content":"Choose your plan"
		},
		"Subtitle":{
			"content":"Try our services with no risk thanks to our 30-day guarantee"
		},
		"Plan 1 title":{
			"content":"Starter"
		},
		"Plan 2 title":{
			"content":"Business"
		}
	}
} 
/-->

ここでは、ブロックパターンへの参照と、編集可能に設定された各ブロックのプロパティセットが表示されます。

なお、パターンの上書きは、Block Bindings APIの実装であるため、サポートされているブロックしか上書きできません。本記事執筆時点では、「見出し」「段落」「画像」「ボタン」ブロックに対応しています。

テンプレートパーツ

Gutenbergが登場する以前は、WordPressのテーマやテンプレートは主にPHPで作成されており、テンプレートの作成やカスタマイズには、子テーマテンプレート階層、主要なフロントエンド開発言語に関する知識が必要でした。しかし、ブロックテーマの導入後にこれが簡素化されています。

ブロックテーマ、およびこの機能を搭載したクラシックテーマでは、サイトエディター上でテンプレートやテンプレートパーツを簡単に作成、カスタマイズすることができます。また特別な開発スキルは不要です。

ブロックテンプレートは、ブロックアイテムの一覧と捉えることができ、サイトタイトル、ロゴ、ナビゲーションなどがその一例です。

テンプレートパーツは、ヘッダーやフッターなど、複数箇所で確認できるページの特定の要素であり、WordPressサイトの任意のページで表示可能です。

サイトエディター上でのテンプレートパーツの作成と編集は、すべての編集機能を活用することができます。

WordPress 6.7に新規テンプレートパーツを追加
WordPress 6.7に新規テンプレートパーツを追加
WordPress 6.7に新しいテンプレートパーツを追加
WordPress 6.7に新しいテンプレートパーツを追加

しかし、ブロックパターンや再利用ブロックとは異なり、テンプレートパーツは、サイトの中で頻繁に変更されない領域を対象としています。

Twenty Twenty-Fiveテーマのフッターテンプレートパーツを編集
Twenty Twenty-Fiveテーマのフッターテンプレートパーツを編集

パターンとテンプレートパーツの違い

まとめると、この3つの主な違いは以下の通りです。

ブロックパターン

  • 定義済みのブロックレイアウト。コンテンツに追加して対象となるブロックと同じ機能を使ってカスタマイズ可能。加えた変更は、そのブロックパターンの1つのインスタンスにのみ影響する。
  • パターンディレクトリからコピー&ペースト可能
  • パターンを作成して、パターンディレクトリに公開できる

カスタムブロックパターン

  • サイトのすべての投稿/固定ページで使用できる同期または非同期のグループ
  • wp_postsテーブルにwp_block投稿タイプとして保存される
  • 他のサイト間でのインポートとエクスポートが可能

テンプレートパーツ

  • ヘッダー、フッター、サイドバーなど、WordPressサイトの複数の場所に表示できるページの特定の領域
  • サイトエディターで作成および編集可能
  • サイトの中で頻繁に変更されない領域が対象

テーマとプラグインのブロックパターンを作成する方法

WordPress 6.3には新たなブロックパターン管理システムが導入され、エディターを離れることなく、同期/非同期のブロックパターンを作成できます。また、WordPress管理画面から数回のクリックで独自のパターンをインポート/エクスポートすることも可能です。

しかし、WordPressはテーマやプラグインの開発者向けにブロックパターンを作成する他の方法も提供しています。

ブロックパターン機能とともに、WordPress 5.5では開発者向けに投稿、固定ページ、カスタム投稿タイプ、テンプレートに簡単に挿入可能なコンテンツブロックを作成するためのAPIが導入されています。この新たなAPIは、ブロックパターンとパターンカテゴリを登録するためのregister_block_pattern関数とregister_block_pattern_category関数を提供します。

WordPress 6.0からは、PHPファイルでブロックパターンを登録することも可能になっています。

つまり、この記事を書いている時点では、ブロックパターンを作成する方法は2つあることになります。

  • register_block_patternヘルパー関数を使う
  • テーマ内のpatternsフォルダ内にPHPファイルを追加する

プラグインでブロックパターンを作成する

最初の方法は、主にWordPress開発者向けの方法ですが、上級者でない開発者でも使えるほど簡単です。

最初の方法を採用した場合、2つの新しい関数register_block_patternregister_block_pattern_categoryを使用して、プラグインのPHPファイルまたはfunction.phpでブロックパターンを作成することができます。

パターンカテゴリーの選択・登録

まず、パターンのカテゴリーを選びます。WordPressの最新バージョンでは、新しいパターン・カテゴリーが追加され、既存のカテゴリーもいくつか変更されています。

登録されているすべてのカテゴリのリストを取得するには、投稿エディターを開いて、ブラウザのコンソールに以下のコードを貼り付けます。

wp.data.select('core').getBlockPatternCategories()

WordPress 6.7でTwenty Twenty-Fiveテーマを有効化すると、以下のパターンカテゴリーの一覧が表示されます。

Twenty Twenty-FiveテーマとWordPress 6.7のパターンカテゴリ
Twenty Twenty-FiveテーマとWordPress 6.7のパターンカテゴリ

ブロックパターンがデフォルトのカテゴリーのいずれにも該当しない場合は、register_block_pattern_category を使って新しいカテゴリーを登録することも可能です。この関数は、2つの引数を受け取ります。

  • $category_name:名前空間を含むパターンカテゴリー名
  • $category_properties:カテゴリープロパティの配列

新規にパターンカテゴリーを登録する例が以下の通りです。

if ( function_exists( 'register_block_pattern_category' ) ) {
	function my_plugin_register_pattern_category() {
		register_block_pattern_category( 
			'my-pattern-category', 
			array(
				'label' => __( 'My Pattern Category', 'my-plugin-text-domain' ),
				'description' => __( 'Simple call to action with a header, an image, a paragraph, and a button.' ),
			)
		);
	}
	add_action( 'init', 'my_plugin_register_pattern_category' );
}

ブロックパターンを登録する

パターンカテゴリーを登録したら、次はブロックパターンそのものを登録します。ブロックパターンの登録は、register_block_patternヘルパーを使って、次のように行います。

function my_plugin_register_block_pattern() {
	register_block_pattern( 'prefix/pattern-name', $props );
}
add_action( 'init', 'my_plugin_register_block_pattern' );

この関数は2つの引数をとります。

  • $pattern_name:(namespace/pattern-nameのような形式の)機械が読み取りが可能な名前
  • $pattern_properties:パターンのプロパティの配列

現在利用可能なパターンプロパティは以下の通りです。

  • title(必須):人が読みやすいパターン名
  • content(必須):パターンのHTMLマークアップ
  • description:パターンを説明するテキスト(説明文は任意ですが、ユーザーによるパターン発見を助けるため推奨されます)
  • categories:1つまたは複数のパターンカテゴリー(ここで使用する前に、カテゴリーを登録しておく必要があります ※前のセクションを参照)
  • keywords:ユーザーによるパターン発見を助けるキーワード
  • viewportWidth:プレビューでのパターンの幅を指定する整数値
  • blockTypes:パターンで使用されるブロックタイプ(任意)
  • postTypes:パターンの使用を許可する投稿タイプ
  • templateTypes:パターンが意味を持つテンプレートタイプ(WordPress 6.2以降で使用可能)
  • inserter:ブロック追加画面でパターンを表示するかどうかを決定するブール値(値をfalseに設定すると、パターンが非表示になります。デフォルトでは、すべてのパターンが追加画面で表示されます)
  • source(任意):パターンのソースを識別する文字列(プラグインからパターンを登録する場合はplugin文字列、テーマの場合はtheme文字列を渡します)

以下は、register_block_patternの使用例です。

if ( function_exists( 'register_block_pattern' ) ) {
	function my_plugin_register_block_pattern() {
		register_block_pattern( 
			'my-plugin/my-block-pattern', 
			array(
				'title'			=> _x( 'My awesome pattern', 'Block pattern title', 'my-plugin-text-domain' ),
				'categories'	=> array( 'my-pattern-category' ),
				'postTypes'		=> array( 'post' ),
				'content'		=> '<!-- wp:paragraph --><p>My awesome block pattern</p><!-- /wp:paragraph -->'
			) 
		);
	}
	add_action( 'init', 'my_plugin_register_block_pattern' );
}

このコードでは、postTypesプロパティを使用して、パターンを通常のブログ記事でのみ利用できるようにしています。また、postTypesに異なる値を設定して、別の投稿タイプで利用できるようにすることもできます。もし、productという投稿タイプがあり、その投稿タイプでのみパターンを利用できるようにしたいのであれば、次のように書きます。

'postTypes' => array( 'product' ),

新しい投稿(またはカスタム投稿タイプ)を作成し、ブロック追加画面を開いて、「パターン」タブをクリックします。新しいパターンカテゴリー(「My Pattern Category」)に、カスタムブロックパターンが表示されているはずです。ブロックパターンをカスタマイズするために、パターンのプロパティを自由に操作してください。

では、もう少し深堀りして、実際にブロックパターンを作ってみましょう。

ブロックパターンの作成例

例えば、見出し、画像、段落、ボタンを含むブロックパターンを作りたいとします。

エディターでブロックパターンのレイアウトを作成し、コードエディターに切り替えてマークアップをコピーします。

ブロックのレイアウト例
ブロックのレイアウト例

この例では、次のようなコードになっています。

<!-- wp:columns -->
<div class="wp-block-columns"><!-- wp:column {"width":"240px"} -->
<div class="wp-block-column" style="flex-basis:240px"><!-- wp:image {"id":25,"sizeSlug":"full","linkDestination":"none","style":{"border":{"radius":{"topLeft":"16px"}}}} -->
<figure class="wp-block-image size-full has-custom-border"><img src="http://wordpress-block-patterns.local/wp-content/uploads/2023/05/placeholder.jpg" alt="" class="wp-image-25" style="border-top-left-radius:16px"/></figure>
<!-- /wp:image --></div>
<!-- /wp:column -->

<!-- wp:column -->
<div class="wp-block-column"><!-- wp:heading {"level":4,"style":{"color":{"text":"#5831f6"}}} -->
<h4 class="wp-block-heading has-text-color" style="color:#5831f6">Your New Home for Modern Web Apps and Sites</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Kinsta is a Cloud Platform designed to help companies and dev teams ship and manage their web projects faster and more efficiently.</p>
<!-- /wp:paragraph --></div>
<!-- /wp:column --></div>
<!-- /wp:columns -->

<!-- wp:buttons {"layout":{"type":"flex"}} -->
<div class="wp-block-buttons"><!-- wp:button {"textAlign":"center","textColor":"base","width":100,"style":{"color":{"background":"#5831f6"},"typography":{"fontSize":"1.36rem"},"border":{"radius":{"topLeft":"0px","topRight":"0px","bottomLeft":"16px","bottomRight":"16px"}}},"fontFamily":"inter"} -->
<div class="wp-block-button has-custom-width wp-block-button__width-100 has-custom-font-size has-inter-font-family" style="font-size:1.36rem"><a class="wp-block-button__link has-base-color has-text-color has-background has-text-align-center wp-element-button" style="border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-left-radius:16px;border-bottom-right-radius:16px;background-color:#5831f6"><strong>View Plans</strong></a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons -->

このコードを最適化することができます。ブロックパターンをプラグインで登録している場合は、画像URLを以下のように変更する必要があります。

esc_url( plugin_dir_url( __FILE__ ) . 'images/placeholder.jpg' )

こうすることで、WordPressは「uploads」の画像ではなく、プラグインの「images」フォルダにある画像を参照するようになります。

そして、viewportWidthプロパティを使用して、ブロック追加画面でのパターンのプレビューを調整することができます。

'viewportWidth' => 800,
ブロック追加画面からブログ記事にカスタムブロックパターンを追加する
ブロック追加画面からブログ記事にカスタムブロックパターンを追加する

また、ユーザーがブロックパターンを簡単に見つけられるように、キーワードを配列で指定することができます。

'keywords' => array( 'cta', 'demo', 'kinsta' ),
ユーザーがブロックパターンを見つけられるようにキーワードを追加する
ユーザーがブロックパターンを見つけられるようにキーワードを追加する

検索でブロックを見つけやすくするために、ブロックの種類を追加することもできます。

'blockTypes' => array( 'core/button' ),

こうすることで、ユーザーが指定したブロックのいずれかを検索したときに、ブロックパターンが候補に表示されます。

postTypesプロパティでは、ブロックパターンを特定の投稿タイプでのみ利用できるようにすることができます。例えば、productの投稿タイプに対してのみ、このパターンを表示させるには以下のように記述します。

'postTypes' => array( 'product' ),

最後に、ブロックパターンのラッパーにCSSクラスを追加することができます。

これを行うには、className属性を持つ新しいグループを作成します。

<!-- wp:group {"className":"my-css-class","layout":{"type":"constrained"}} -->
<div class="wp-block-group my-css-class">
	<!-- Your blocks -->
</div>
<!-- /wp:group -->

なお、同じクラス名を続くdiv要素に追加する必要があります。

ブロックパターンの詳細やコードの例については、WordPress.orgのTheme Handbookブロックパターンも参照してください。

ファイルでブロックパターンを作成する

前述したとおり、WordPress 6.0では、WordPressテーマブロックパターンを追加する簡単な方法が導入されました。テーマのルートにある/patternsフォルダの下にPHPファイルとして宣言することで、ブロックパターンを暗示的に登録できるようになっています。

前項で構築したブロックパターンと同じものをテーマに登録したいとします。この例では、テーマにTwenty Twenty-Threeを使用します。

前の方法と同じようにパラメータを設定しますが、ファイルヘッダのコメントに記述します。また、パラメータ名をキャメルケースで表記するのではなく、単語をスペースで区切り、配列の代わりにカンマ区切りのリストを使用します。

まず、前の例でパターンの登録に使用したプラグインを停止します。次に、my-block-pattern.phpファイルを作成し、以下のヘッダを貼り付けます。

<?php
/**
 * Title: My awesome pattern
 * Slug: twentytwentythree/my-block-pattern
 * Post Types: post
 * Categories: featured, banner
 * Viewport Width: 800
 * Keywords: Call to action, kinsta
 * Block Types: core/buttons
 */
?>

次に、ブロックパターンのコンテンツを追加します。前の例と同じマークアップを使うことができますが、少しだけ変更する必要があります。

<!-- wp:columns -->
<div class="wp-block-columns"><!-- wp:column {"width":"240px"} -->
<div class="wp-block-column" style="flex-basis:240px"><!-- wp:image {"id":25,"sizeSlug":"full","linkDestination":"none","style":{"border":{"radius":{"topLeft":"16px"}}}} -->
<figure class="wp-block-image size-full has-custom-border"><img src="<?php echo esc_url( get_theme_file_uri( 'assets/images/placeholder.jpg' ) ); ?>" alt="" class="wp-image-25" style="border-top-left-radius:16px"/></figure>
<!-- /wp:image --></div>
<!-- /wp:column -->

<!-- wp:column -->
<div class="wp-block-column"><!-- wp:heading {"level":4,"style":{"color":{"text":"#5831f6"}}} -->
<h4 class="wp-block-heading has-text-color" style="color:#5831f6">Your New Home for Modern Web Apps and Sites</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Kinsta is a Cloud Platform designed to help companies and dev teams ship and manage their web projects faster and more efficiently.</p>
<!-- /wp:paragraph --></div>
<!-- /wp:column --></div>
<!-- /wp:columns -->

<!-- wp:buttons {"layout":{"type":"flex"}} -->
<div class="wp-block-buttons"><!-- wp:button {"textAlign":"center","textColor":"base","width":100,"style":{"color":{"background":"#5831f6"},"typography":{"fontSize":"1.36rem"},"border":{"radius":{"topLeft":"0px","topRight":"0px","bottomLeft":"16px","bottomRight":"16px"}}},"fontFamily":"inter"} -->
<div class="wp-block-button has-custom-width wp-block-button__width-100 has-custom-font-size has-inter-font-family" style="font-size:1.36rem"><a class="wp-block-button__link has-base-color has-text-color has-background has-text-align-center wp-element-button" style="border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-left-radius:16px;border-bottom-right-radius:16px;background-color:#5831f6"><strong><?php echo __( 'View plans', 'text-domain' ); ?></strong></a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons -->

マークアップは、基本的に前の例と変わりません。変更したのは2つだけです。

プレースホルダー画像URLは、get_theme_file_uri関数で生成されています。

<?php echo esc_url( get_theme_file_uri( 'assets/images/placeholder.jpg' ) ); ?>

もちろん、最初にplaceholder.jpgの画像をテーマの/assets/imagesフォルダに配置しておく必要があります。

次のコードで、出力したいテキストを指定しています。

<?php echo __( 'View plans', 'text-domain' ); ?>

ファイルを保存して、新しい投稿を作成してみてください。作成したブロックパターンが、「featured」と「banner」カテゴリーに表示されます。

ブロックパターンのサポート解除、登録解除、非表示する方法

状況によっては、ブロックパターンに対して特別な操作を実行したいことがあるかもしれません。例えば、コアブロックパターンを独自のブロックパターンに置き換えたり、特定の条件下でカテゴリーの登録を解除したり。実行可能な操作をご紹介します。

1. すべてのコアブロックパターンのサポートを解除する

テーマ開発の一環として、コアブロックパターンのサポートを削除し、独自のパターンを指定することができます。コアパターンのサポートを解除するには、remove_theme_support関数を以下のように使用します。

remove_theme_support( 'core-block-patterns' );

remove_theme_support関数をafter_setup_themeフックと組み合わせることをお勧めします。

2. 特定のブロックパターンの登録を解除する

特定のブロックパターンの登録を解除することもできます。これは、カスタムの代替案を提供したい場合や、テーマで特定のブロックパターンを使用したくない場合に利用します。

Patterns APIでは、このためにunregister_block_pattern関数があります。

function my_theme_unregister_block_pattern() {
	unregister_block_pattern( 'namespace/block-pattern-name' );
}
add_action( 'init', 'my_theme_unregister_block_pattern' );

コアブロックパターンの登録を解除するには、以下のようにします。

function my_theme_unregister_block_pattern() {
	unregister_block_pattern( 'core/query-offset-posts' );
}
add_action( 'init', 'my_theme_unregister_block_pattern' );

unregister_block_patterninitフックで使用することになります。

3. ブロックパターンカテゴリーの登録を解除する

パターンカテゴリーの登録を解除することもできます。 unregister_block_pattern_category関数をinitにフックします。

function my_theme_unregister_block_pattern_categories() {
	unregister_block_pattern_category( 'pattern-category-name' );
}
add_action( 'init', 'my_theme_unregister_block_pattern_categories' );

パターン作成ツールでブロックパターンを作成・共有する方法

無料のオンラインツール「Pattern Creator」を使って、パターンを作成し、コミュニティと共有することもできます。

WordPress.orgのアカウントをお持ちの方は、パターンディレクトリからPattern Creatorにアクセスすることができます。

そこで「Create new pattern」をクリックします。これにより、ブロックパターンを作成するための画面が起動します。

Pattern Creatorは、WordPress.orgの無料オンライン編集ツール
Pattern Creatorは、WordPress.orgの無料オンライン編集ツール

また、Openverseライブラリでホストされている無料の画像も使用できます。

パターンの画像はOpenverseから利用できる
パターンの画像はOpenverseから利用できる

作成できたら、下書きを保存するか、パターンを送信することができます。

Pattern Creatorでパターンを作る
Pattern Creatorでパターンを作る

次に、ディレクトリに戻りMy patternsを選択すると、すべてのパターンが「All」「Drafts」「Pending Review」の3つのタブで表示されます。

パターンをプレビューする
パターンをプレビューする

編集が終わったら、パターンをコミュニティと共有することができます。エディターの右上にある「Submit」ボタンをクリックするだけで、パターンを提出可能です(パターンを送信する前に、必ずパターンのガイドラインに従っていることを確認してください)。

まとめ

WordPressは20周年を迎えました。統計によると、2023年5月の時点で63.3%の市場シェアを持ち、依然として世界で最も広く使われているCMSです。

これらの数字は、WordPressが世界中の何千人もの技術者、開発者、ブロガーに使用されている優れたコンテンツ管理ツールであることを証明しています。

WordPress開発の新しいスキルを身につけ、カスタムブロック、再利用ブロック、ブロックパターンなどの高度な機能の学習に時間とリソースを割くことは、マーケター、ウェブデザイナー、出版社のスタッフとして働く方々のキャリアを支えるはずです。

ブロックパターンを作成したことはありますか?また、コミュニティで共有したことはありますか?ブロックパターンに関するお考えとあわせて、是非ご紹介ください。

Carlo Daniele Kinsta

ウェブデザインとフロントエンド開発をこよなく愛し、WordPress歴は10年以上。イタリアおよびヨーロッパの大学や教育機関とも共同研究を行う。WordPressに関する記事を何十件も執筆しており、イタリア国内外のウェブサイトや雑誌に掲載されている。詳しい仕事情報はXとLinkedInで公開中。