インストール
モジュールをインストールします
npm install @wordpress/block-library --save
このパッケージは、あなたのコードがES2015+環境で実行されることを前提としています。もし、言語機能やAPIのサポートが限られているか、全くない環境を使用している場合は、コードに@wordpress/babel-preset-default
で提供されるポリフィルを含めるべきです。
API
registerCoreBlocks
ブロックエディタによって提供されるコアブロックを登録するための関数です。
使用法
import { registerCoreBlocks } from '@wordpress/block-library';
registerCoreBlocks();
パラメータ
個別ブロックの登録
- 1. ファイルがインポートされたときにブロックを登録することにのみ関心がある場合:
import '@wordpress/block-library/build-module/verse/init';
- 2. 自動的に登録された後にブロックへの参照を使用したい場合:
import verseBlock from '@wordpress/block-library/build-module/verse/init';
3. ブロックが登録されるタイミングを完全に制御する必要がある場合:
import { init } from '@wordpress/block-library/build-module/verse';
const verseBlock = init();
このパッケージへの貢献
これはGutenbergプロジェクトの一部である個別のパッケージです。このプロジェクトはモノレポとして整理されています。特定の目的を持つ複数の自己完結型ソフトウェアパッケージで構成されています。このモノレポ内のパッケージはnpmに公開され、WordPressや他のソフトウェアプロジェクトで使用されています。
このパッケージやGutenberg全体への貢献について詳しく知りたい場合は、プロジェクトの主な貢献者ガイドをお読みください。
新しいブロックの追加
このパッケージに新しいブロックを追加するには追加の手順が必要です!
- 1. このパッケージの
index.js
ファイルに新しいコアブロックを登録することを忘れないでください。たとえば、core/blinking-paragraph
という新しいコアブロックを追加する場合、次のように追加する必要があります:
次に、// packages/block-library/src/index.js
import * as blinkingParagraph from './blinking-paragraph';
blinkingParagraph
をgetAllBlocks()
関数のリストに追加します。
実験的なものであれば、block.json
に次のプロパティを追加します:{
"__experimental": "true"
}
- 2.
lib/blocks.php
ファイルのgutenberg_reregister_core_block_types()
関数でブロックを登録します。静的ブロックの場合はblock_folders
配列に、動的ブロックの場合はblock_names
配列に追加します。 3. 新しいブロックのディレクトリに
init.js
ファイルを追加します:/**
* Internal dependencies
*/
import { init } from './';
export default init();
このファイルは、
@wordpress/block-library
パッケージから個別のブロックを登録するオプションを使用する際に使用されます。4. ブロックのディレクトリに
view.js
ファイル(またはview
で接頭辞が付けられたファイル、例:view-example.js
)が存在する場合、このファイルは他のアセットと共にビルドされ、ブラウザから読み込むことができるようになります。block.json
ファイル内でview.min.js
(異なるファイル拡張子に注意)ファイルを参照するだけで済みます:{
"viewScript": "file:./view.min.js"
}
このファイルは、静的ブロックがフロントエンドに存在する場合に自動的に読み込まれます。動的ブロックの場合は、ブロックの
render_callback
でビューのスクリプトを手動でエンキューする必要があります。例:function render_block_core_blinking_paragraph( $attributes, $content ) {
$should_load_view_script = ! empty( $attributes['isInteractive'] ) && ! wp_script_is( 'wp-block-blinking-paragraph-view' );
if ( $should_load_view_script ) {
wp_enqueue_script( 'wp-block-blinking-paragraph-view' );
}
return $content;
}
PHP関数の命名規則
- `````block_core_<directory_name>
render_block_core_<directory_name>
register_block_core_<directory_name>
この文脈では、<directory_name>
は対応する.php
ファイルが存在するディレクトリの名前を表します。
ディレクトリ名は小文字に変換され、文字と数字以外のすべての文字はアンダースコアに置き換えられます。
例:
- `````block_core_my_block
render_block_core_my_block
register_block_core_my_block
プラグイン固有の接頭辞/接尾辞の使用
/libディレクトリのPHPコードとは異なり、一般的にブロックPHPファイル内の関数や他のコードにgutenberg_
のようなプラグイン固有の接頭辞/接尾辞を適用することは避けるべきです。
ただし、コアに相当するものが存在する場合でも、ブロックがGutenberg関数を使用する必要がある場合があります。たとえば、Gutenberg関数がプラグイン内でのみ利用可能なコードに依存している場合です。
そのような場合、ブロックPHPコード内で対応するコアwp_
関数を使用し、その名前をWebpack構成ファイル内の接頭辞付き関数のリストに追加できます。
ビルド時に、Webpackはそのリスト内のwp_
関数を検索し、それらをgutenberg_
の同等物に置き換えます。このプロセスにより、プラグインはgutenberg_
関数を呼び出しますが、ブロックは更新がバックポートされたときにコアwp_
関数を呼び出します。
Webpackは、接頭辞を除いて、関数名が同一であると仮定します: wp_get_something_useful()
はgutenberg_get_something_useful()
に置き換えられます。