Създаване на собствени Gutenberg блокове с JavaScript и React
Gutenberg, новият редактор на WordPress, използва блокове за създаване на съдържание. Това е голямо отклонение от предишния TinyMCE редактор и предоставя много по-интуитивен и динамичен потребителски интерфейс. В основата на този нов редактор е JavaScript библиотеката React. Това значи, че сега можете да създавате собствени блокове, използвайки JavaScript и React. В тази статия ще обсъдим как да създадем собствен блок Gutenberg с помощта на тези технологии.
Подготовка
За да започнем, трябва да имаме инсталиран Node.js и NPM на нашата машина. След това, ще използваме WP CLI, конкретно пакета @wordpress/create-block
, за да създадем структурата на нашия блок. В командната си линия, навигирайте до wp-content/plugins папката на вашия WordPress сайт и въведете следната команда:
npx @wordpress/create-block my-block
Тук ‘my-block’ е името на вашия блок. Това ще създаде нова папка със същото име, включително всички необходими файлове за Gutenberg блок.
Разработка на блока
Сега отворете папката на блока в предпочитания от вас текстов редактор. Ще видите два основни файла – edit.js
и save.js
. Файлът edit.js
определя как блокът ще изглежда и ще функционира в редактора на Gutenberg, докато save.js
определя как блокът ще се показва на фронтенда на вашия сайт.
За създаване на собствен блок ще трябва да импортираме няколко компонента от @wordpress/block-editor
и @wordpress/components
.
Например, в edit.js
можем да импортираме и използваме RichText
компонента, за да създадем текстов блок, който потребителите могат да редактират:
import { RichText } from '@wordpress/block-editor';
export default function Edit( { attributes, setAttributes } ) {
const { content } = attributes;
return (
<RichText
tagName="p"
value={ content }
onChange={ ( newContent ) => setAttributes( { content: newContent } ) }
/>
);
}
Тук използваме RichText
компонента, която получава content
атрибута и функцията setAttributes
от пропсите. Когато потребителят промени текста, onChange
събитието актуализира content
атрибута с новото съдържание.
В save.js
ще използваме същия RichText.Content
компонент, за да отпечатаме съдържанието на блока:
import { RichText } from '@wordpress/block-editor';
export default function Save( { attributes } ) {
const { content } = attributes;
return (
<RichText.Content tagName="p" value={ content } />
);
}
Регистрация на блока
Накрая, трябва да регистрираме нашия нов блок в WordPress. Върнете се обратно в index.js
файл и добавете следната функция registerBlockType
:
import { registerBlockType } from '@wordpress/blocks';
import Edit from './edit';
import save from './save';
registerBlockType( 'my-plugin/my-block', {
apiVersion: 2,
title: 'My Block',
category: 'common',
attributes: {
content: {
type: 'string',
source: 'html',
selector: 'p',
},
},
edit: Edit,
save,
} );
Тук регистрираме нов блок с името ‘my-plugin/my-block’, като дефинираме атрибутите, които ще използва блокът, и посочваме функциите Edit
и save
за редактиране и показване на блока.
Заключение
Това е базово ръководство за създаване на ваш собствен блок в Gutenberg с JavaScript и React. Тъй като Gutenberg е създаден с React, възможностите за персонализиране и разширяване на функционалността на блоковете са почти безкрайни. С уменията за работа с React, можете да създадете по-сложни блокове, които отговарят на специфичните нужди на вашия уебсайт или приложение.