Създаване на собствени Gutenberg блокове с JavaScript и React

Създаване на собствени 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, можете да създадете по-сложни блокове, които отговарят на специфичните нужди на вашия уебсайт или приложение.

Подобни статии

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *