更新日期:2020-12-21
Gutenberg 編輯器內建多樣的區塊類型,一般來說,寫個部落格文章,絕對是夠你使用了。不過一個模組通常無法滿足大家的需求,總是需要一些額外的功能,Gutenberg 當然支援擴充,只要你會撰寫程式的話,也是沒問題的。
底下範例是教你如何寫出你的第一個 Gutenberg 擴充模組外掛,這是從官網擷取出來的程式碼,我將幾個重要的變數寫一下。
Step.1 這段程式碼是先寫成一支獨立的外掛,但 Gutenberg 的運作是靠 javascript ,因此最重要的語法是包在 block.js 檔裡面。
/**
Plugin Name: Test Gutenberg Plugin
Author: Simon
Version: 1.0.0
*/
function gutenberg_examples_01_register_block() {
wp_register_script(
'gutenberg-examples-01',
plugins_url( 'block.js', __FILE__ ),
array( 'wp-blocks', 'wp-element' )
);
register_block_type( 'gutenberg-examples/example-01-basic', array(
'editor_script' => 'gutenberg-examples-01',
) );
}
add_action( 'init', 'gutenberg_examples_01_register_block' );
- 這裡我們先用 wp_register_script 將 block.js 引入,這個 block.js 是接下來要撰寫的檔案。你也可以再用 wp_register_style 加入 css。
- 注意 array( ‘wp-blocks’, ‘wp-element’ ) ,這兩個是我們在 block.js 會用到。
- 接著用 register_block_type 註冊區塊,第一個參數 ‘gutenberg-examples/example-01-basic’ 是區塊名稱,不要重複。第二個參數可把 js,css 引用進去。
Step.2 編輯 block.js 檔案,要撰寫的內容如下:
( function( blocks, element ) {
var el = element.createElement;
var blockStyle = {
backgroundColor: '#900',
color: '#fff',
padding: '20px',
};
blocks.registerBlockType( 'gutenberg-examples/example-01-basic', {
title: 'Example: Basic',
icon: 'universal-access-alt',
category: 'layout',
edit: function() {
return el(
'p',
{ style: blockStyle },
'Hello World, step 1 (from the editor).'
);
},
save: function() {
return el(
'p',
{ style: blockStyle },
'Hello World, step 1 (from the frontend).'
);
},
} );
}(
window.wp.blocks,
window.wp.element
) );
- 這邊用 registerBlockType 去註冊新的區塊,後面第一個參數是區塊名稱,也就是剛剛上面的我們自訂區塊名稱。
- registerBlockType 第二個參數是設定屬性,有 title、description、category、icon、keywords、styles、attributes、transforms、parent、supports、edit、save 。(粗體字表示必須要有的屬性)
- 各個屬性的型態、用法介紹,可以到官網看一下。
發佈留言