WordPressのGutenberg(ブロックエディタ)では、独自のカスタムブロックを追加することで、よく使う定型文やショートコードをワンクリックで挿入できるようになります。
この記事では、Gutenbergにオリジナルの「テンプレート挿入ボタン付きブロック」を作成し、見出しや本文、ショートコードを手軽に挿入する方法を紹介します。
ブロック開発に必要な準備
まずはWordPressテーマ内に block-template
などのフォルダを作成し、必要なJavaScriptファイルやブロック情報を配置します。
以下は構成例です:
/your-theme/
├── functions.php
└── block-template/
├── block.js
└── index.js
functions.php にスクリプト読み込みを追加
テーマの functions.php
に以下を追加して、Gutenberg用スクリプトを読み込みます。
<?php
function register_custom_gutenberg_block() {
wp_register_script(
'custom-template-block',
get_template_directory_uri() . '/block-template/block.js',
array( 'wp-blocks', 'wp-element', 'wp-editor', 'wp-components' ),
filemtime( get_template_directory() . '/block-template/block.js' )
);
register_block_type( 'mytheme/template-button', array(
'editor_script' => 'custom-template-block',
) );
}
add_action( 'init', 'register_custom_gutenberg_block' );
?>
block.js の内容(カスタムブロックの定義)
block.js
に以下のような内容を記述し、テンプレートを挿入するボタン付きのブロックを作成します。
(function (blocks, element, editor, components) {
var el = element.createElement;
blocks.registerBlockType('mytheme/template-button', {
title: 'テンプレート挿入',
icon: 'editor-insertmore',
category: 'widgets',
edit: function () {
return el(
'button',
{
className: 'components-button is-primary',
onClick: function () {
const content = '<h2>見出しタイトル</h2>\n\nここに本文を入力してください。';
editor.RichText.insert(content);
}
},
'テンプレートを挿入'
);
},
save: function () {
return null; // 動的ブロック(保存時の出力なし)
}
});
})(
window.wp.blocks,
window.wp.element,
window.wp.editor,
window.wp.components
);
このカスタムブロックを使うことで、「テンプレートを挿入」ボタンをGutenberg上に追加し、クリックするだけで指定のHTMLを本文に追加できます。
ショートコードを挿入する場合
テンプレートの代わりにショートコードを挿入したい場合は、挿入文字列を以下のように変更します。
const content = '[my_shortcode param="value"]';
これにより、記事中に簡単にショートコードを追加できるようになります。
まとめ
Gutenbergでは、カスタムブロックを使って投稿エディタにテンプレートやショートコードを簡単に挿入できるボタンを追加できます。よく使う定型文や構造がある場合は、エディタの操作性を高めるために、こうしたカスタマイズを導入すると便利です。
本格的な開発には @wordpress/create-block
パッケージを使ったブロックプラグイン開発もおすすめですが、テーマ内で軽量に実装したい場合は今回の方法で十分対応可能です。