ブロックテーマの導入以来、テーマ開発者はカスタムブロックテンプレートを作成できるようになりました。しかし、この可能性はテーマに限られており、プラグインは独自のテンプレートを直接登録することはできません。同様の機能を実現するために、プラグインは複数のPHPフィルターをフックしたり、手作業でWP_Block_Template
オブジェクトを作成し、WordPress の内部ロジックを複製します。
ワードプレス 6.7 プラグインが独自のブロックテンプレートを登録するプロセスを大幅に簡素化する新しいAPIが導入されました。これを実現するために、2つの新機能が導入されました:register_block_template()
ブロックテンプレートとunregister_block_template()
ブロックテンプレートの登録を解除するために使用します。
register_block_template( string $template_name, $args = array( ) )
テンプレートの登録方法を定義する2つのパラメータを受け取ります:
1TP4テンプレート名
plugin_uri//template_nameという形式のテンプレート名です。1TP4タルグ
テンプレートを定義するために使用されるパラメータの配列:タイトル
テンプレートの国際化されたタイトル。記述
テンプレートの国際化された説明。内容
: エディターもしくはフロントエンドでレンダリングされるときのテンプレートのデフォルトの内容(ブロックマークアップ)。ポストタイプ
各投稿のカスタムテンプレートとしてユーザーが利用できる一連の投稿タイプスラッグ。
例えば、プラグインは以下のコード・スニペットを使ってテンプレートを登録できます:
register_block_template( 'devblog-plugin-templates//my-template', [
'title' => __( '例', 'devblog-plugin-templates' ), [ 'description' => __( 'プラグインのブロックテンプレートの例。
'description' => __( 'プラグインのブロックテンプレートの例。', 'devblog-plugin-templates' )、
'content' => '
<!-- wp:template-part {"slug":"header","area":"header","tagName":"header"} /-->
<!-- wp:group {"tagName":"main"} -->
<main class="wp-block-group">
<!-- wp:group {"layout":{"type":"constrained"}} -->
<div class="wp-block-group">
<!-- wp:paragraph -->
<p>これはプラグインに登録されたテンプレートです。</p>
<!-- /wp:paragraph -->
</div>
<!-- /wp:group -->
</main>
<!-- /wp:group -->
<!-- wp:template-part {"slug":"footer","area":"footer","tagName":"footer"} /-->'
一度登録されると、このテンプレートはサイトエディタで他のすべてのテンプレートと一緒に表示されます:
また、必要であれば、以下のコマンドを使用して登録を後でキャンセルすることもできます:
unregister_block_template( 'devblog-plugin-templates//my-template' )
このプラグインは、カスタム投稿タイプのアーカイブページや特定の著者ページなど、WordPressのテンプレート階層にあるテンプレートを上書きすることもできます。
テーマのテンプレートはプラグインに登録されたテンプレートよりも優先され、特定のプラグインテンプレートをWordPressのテンプレートであるかのように上書きすることができます。
現在、このAPIはブロックテンプレートに限定されており、ブロックテンプレートのセクションを登録することはできません。
お問い合わせ |
---|
記事が読めない?無料でお答えします!個人サイト、中小企業サイトのための無料ヘルプ! |
① 電話:020-2206-9892 |
② QQ咨询:1025174874 |
三 Eメール:info@361sale.com |
④ 勤務時間:月~金、9:30~18:30、祝日休み |