Як створити Gutenberg-блоки на React: приклад власного блоку

Редактор блоків Gutenberg у WordPress використовує React під капотом і дозволяє створювати власні блоки контенту. Це відкриває великі можливості для розробників, які хочуть надати клієнтам кастомні елементи з повним контролем над виглядом і логікою. У цій статті розглянемо, як створити свій власний блок на Gutenberg за допомогою React.

1. Підготовка середовища

Почнемо з базової структури плагіна:

  • Створіть папку my-custom-block у wp-content/plugins.
  • Додайте файл my-custom-block.php з оголошенням плагіна.
<?php
/**
 * Plugin Name: My Custom Block
 */
function my_block_assets() {
  wp_enqueue_script(
    'my-custom-block',
    plugins_url('block.js', __FILE__),
    array('wp-blocks', 'wp-element', 'wp-editor', 'wp-components')
  );
}
add_action('enqueue_block_editor_assets', 'my_block_assets');

2. Створення JavaScript-файлу

Створіть файл block.js в корені плагіна. Приклад базового Gutenberg-блоку:

(function (blocks, element) {
  var el = element.createElement;
  blocks.registerBlockType('myplugin/hello-block', {
    title: 'Hello Block',
    icon: 'smiley',
    category: 'common',
    edit: function () {
      return el('p', null, 'Привіт з власного блоку!');
    },
    save: function () {
      return el('p', null, 'Привіт з фронтенду!');
    },
  });
})(window.wp.blocks, window.wp.element);

Цей код створює простий блок, який виводить текст у редакторі та на сайті.

3. Додавання стилів

Ви можете підключити CSS для стилізації вашого блоку:

  • Створіть style.css — для фронтенду.
  • Створіть editor.css — для редактора.

Не забудьте підключити стилі через wp_enqueue_style у функціях плагіна.

4. Компільований підхід через @wordpress/scripts

Для реальних проєктів краще використовувати npm і @wordpress/scripts:

npx @wordpress/create-block my-block

Ця команда автоматично створить структуру плагіна з підтримкою ESNext, JSX і Webpack. Вам залишиться лише редагувати файл edit.js у каталозі src.

5. Приклади практичного використання

  • Кастомні CTA-блоки з кнопками та стилізацією.
  • Галереї, слайдери або таби, які зручно редагуються.
  • Інтеграція з зовнішніми API (наприклад, погода, курс валют).

Висновок

Gutenberg — це не просто новий редактор, а сучасна платформа для створення гнучкого контенту. Власні блоки на React дозволяють реалізовувати найрізноманітніші компоненти — від простих до складних інтерактивних елементів. Використовуйте стандартний API WordPress або збірку через @wordpress/create-block — і розширюйте можливості редактора на повну.

www.camping-channel.eu

www.camping-channel.info

www.campingchannel.eu

www.campingplaetze-niederlande.de

www.capelinks.com

www.cbckl.kr

www.ccof.net

www.centropol.de

www.chatcentralgateway.com

www.city-fs.de

www.cobaev.edu.mx

www.cos-e-sale.de

www.country-retreats.com

www.cotid.org

www.cricsim.com

www.dacristina.it

www.dailysportspages.com

www.denkmalpflege-fortenbacher.de

www.depar.de

www.derfischkopf.de

www.dessau-service.de

www.die-matheseite.de

www.digital-experts.de

www.direktiva.eu

www.dmxmc.de

www.dot-blank.com

www.dr-drum.de

www.dramonline.org

www.dj-enzo.net

www.drjw.de

www.dsl.sk

www.e-douguya.com

www.dynonames.com

www.eastvalleycardiology.com

www.e-learn.ru

www.ebreliders.cat

www.echoforum.com

www.ege-net.de

www.elienai.de

www.eloiseplease.com

www.endstate.com.au

www.enquetes.com.br

www.failli1979tuscany.com

www.faustos.com

www.fbcrialto.com

www.ephrataministries.org

www.fcterc.gov.ng

www.figuremodel.de

www.festivaldeltartufovero.it

www.fishinghunting.com

www.flooble.com

www.flugzeugmarkt.eu

www.fmisrael.com

www.fmx.dk

www.formula-web.jp

www.forum.sparkyfacts.co.uk

www.fouillez-tout.com

www.fr8ghtdog.com

www.fujidenwa.com

www.garagebiz.ru

www.gavgav.info

www.gaxclan.de

www.gazpromenergosbyt.ru

www.genesisturfgrass.com

www.geomedical.org

www.gewindesichern.de

www.gitsham.com.au

www.glad2bhome.com

www.glamourcon.com

www.glasgowapollo.com

www.gochisonet.com

www.goglogo.com

www.goldankauf-oberberg.de

www.google.ad

www.google.ba

www.google.be

www.google.co.ao

www.google.co.ck

www.google.com.ag

www.google.co.ke

www.google.com.gh

www.google.com.tn

www.google.de

www.google.com.sb

www.google.es

www.google.com

www.google.hn

www.google.hr

www.google.jo

www.google.it

www.google.kg

www.google.nu

www.gotocayman.co.uk

www.greekspider.com

www.greenmarketing.com

www.gta.ru

www.gtb-hd.de

www.hannobunz.de

www.hanabijin.jp

www.hartmanngmbh.de

www.harikyu.in

www.henning-brink.de

www.herna.net

www.hfw1970.de

www.hoboarena.com

www.hospitalityvisions.com

www.houthandeldesmet.be

www.hramacek.de

www.how2power.com

www.hometophit.com

www.huberworld.de

www.iga-y.com

www.iheartmyteacher.org

www.ijhssnet.com

www.ininternet.org

www.insidetopalcohol.com

www.intrahealthgroup.com

www.intlspectrum.com

www.iranspca.com

www.ixawiki.com

www.jachta.lt

www.jalizer.com

www.jschell.de

www.junix.ch

www.kalinna.de

www.kanaginohana.com

www.kestrel.jp

www.kinderverhaltenstherapie.eu

www.kirstenulrich.de

www.kevinharvick.com

www.knieper.de

www.kobe-charme.com

www.konradchristmann.de

www.kpsearch.com

www.kraeved.ru

www.krankengymnastik-kaumeyer.de

www.kuri.ne.jp

www.lanarkcob.org

www.larscars.com

www.leftkick.com

www.leimbach-coaching.de

www.lethalitygaming.com

www.lifetimefinancialadvisers.co.uk

www.lobenhausen.de

www.lotus-europa.com

www.lovelanelives.com

www.lureanglersonline.co.uk

www.m-thong.com

www.maganda.nl

www.marchien.net

www.marstruct-vi.com

www.martincreed.com

www.masekaihatsu.com

www.meccahosting.co.uk

www.mech.vg

www.meccahosting.com

www.mediaci.de

www.mediaci-press.de

www.mejtoft.se

www.merchantech.co.uk

www.militarian.com

www.mitte-recht.de

www.mobilepcworld.net

www.mosig-online.de

www.mozaffari.de

www.mrpretzels.com

www.muehlenbarbek.de

www.muppetsauderghem.be

www.musikspinnler.de

www.nagerforum.ch

www.nashi-progulki.ru

www.naughtyallie.com

www.naughtyjulie.com

www.ndxa.net

www.neilhalstead.com

www.newhopebible.net

www.neko-tomo.net

www.nittmann-ulm.de

www.nightdriv3r.de

www.noize-magazine.de

www.no-harassment.net

www.northraleighleads.com

www.novalogic.com

www.nwnights.ru

www.objectif-suede.com

www.office-mica.com

www.onesky.ca

www.online-power.com

www.opera.ie

www.orta.de

www.osbmedia.com

www.outkastfishingforum.com

www.pahu.de

www.pantybucks.com

www.patrick-bateman.com

www.patriot-home-sales.com

www.paul2.de

www.peacememorial.org

www.peterblum.com

www.pickyourownchristmastree.org.uk

www.pingfarm.com

www.piano-p.com

www.plantdesigns.com

www.politicalforum.com

www.polosedan-club.com

www.potthof-engelskirchen.de

www.primondo.de

www.priuswiki.de

www.proffiliates.com

www.publicanalyst.com

www.questsociety.ca

www.ra-aks.de

www.rae-erpel.de

www.ralf-strauss.com

www.ralph-rose.de

www.raphustle.com

www.reddotmedia.de

www.reinhardt-online.com

www.reisefuchsforum.de

www.reko-bioterra.de

www.rheinische-gleisbautechnik.de

www.riverturn.com

www.rogerwoodward.com

www.russiacc.jp

www.sa-shi.com

www.salonsoftware.co.uk

www.sanbornstravel.com

www.sargsplitter.de

www.satilmis.net

www.schlimme-dinge.de

www.scampatrol.org

www.schulz-giesdorf.de

www.scsa.ca

www.security-scanner-firing-range.com

www.sebastianmenschhorn.at

www.sebchurch.org

www.seniorsonly.club

www.sellere.de

www.seymoursimon.com

www.shogundojo.com

www.siam-daynight.com

www.shop-vida.com

www.skolapotapeni.cz

www.smartphone.ua

www.sorenwinslow.com

www.sozialemoderne.de

www.sousei-ikoma.com

www.speedmap.waiblingen.de

www.speuzer-cup.de

www.sportsforum.com

www.sportstwo.com

www.sprang.net

www.squeegeeworld.com

www.startgames.ws

www.startuppr.co.uk

www.staudy.de

www.states.com.au

www.ssnote.net

www.stevelukather.com

www.stoneline-testouri.de

www.strattonspine.com

www.stuff4beauty.com

www.sublimemusic.de

www.sv-mama.ru

www.sweetninasnomnoms.com

www.tanakajimaru.co.jp

www.teamready.org

www.technitronic.com

www.terrasound.at

www.testron.ru

www.terrehautehousing.org

www.thearkpoolepark.co.uk

www.thecenterfoundation.org

www.tifosy.de

www.top-fondsberatung.de

www.tm-flavor.com

www.top-forum.ir

www.toku-jp.com

www.totallynsfw.com

www.trackroad.com

www.travelinfos.com

www.tucasita.de

www.ucrca.org

www.urmotors.com

www.ut2.ru

www.vatechniques.com

www.vectechnologies.com

www.virginiamaidkitchens.com

www.voidstar.com

www.vwbk.de

www.wdwip.com

www.webclap.com

www.week.co.jp

www.wellnesshotels-regionen.de

www.wetsuweten.com

www.whatmusic.com

www.whitelistdelivery.com

www.whatsmywebsiteworth.info

www.whoohoo.co.uk

www.wildner-medien.de

www.wicwiki.org.uk

www.wikipediaplus.org

www.wpex.com

www.x-jocuri.ro

www.xioshop.com

www.xtg-cs-gaming.de

www.yakubi-berlin.de

www.ypyp.de

www.yurit.net

www.zelmer-iva.de

www.ztrforum.de

www6.topsites24.de

xf4.org

xenforo.cc

xfrocks.com

xlnation.city

xn--80aairftanca7b.net

xneox.com

xow.me

yahsiworkshops.com

yami2.xii.jp

yesfest.com

yixing-teapot.org

zanostroy.ru

150.95.138.99

16.gregorinius.com

22.pexeburay.com

2fiftycc.com

3.caiwik.com

256.makerslocal.org

30secondstomars.ru

34.viromin.com

31.gregorinius.com

3darcades.com

50.farcaleniom.com

53.torayche.com

57.espresionium.com

54.cholteth.com

65.gregorinius.com

60.viromin.com

6giay.vn

84.caiwik.com

8bitiz.com

abn-ad.com

aboutams.com

account.eleavers.com

accounts.cancer.org

accounts.cancer.org

activitypub-viewer.glitch.me

actlimo.com.au

advancetabco.com

agentura-hermes.cz

agriturismo-toskana.it

ajpower.net

akpraht.ru

alenka.capital

allsp.ch

alpineinnhillcity.com

alt1.toolbarqueries.google.ac

ambitenergy.com

americanashopper.com

almanach.pte.hu

alpha.astroempires.com

ana.fibladi.com

anadoluyatirim.com.tr

animalgiftsgalore.com

anon.to

anonym.es

anolink.com

antoniopacelli.com

amjproduce.com.au

apc-overnight.com

app.betterimpact.com

app.espace.cool

app.randompicker.com

aquariumspace.com

arinastar.ru

armoryonpark.org

aromarti-cafe.ru

artprom.net

ashirovo.ru

atilekt.net

atlantis.pennergame.de

au.emembercard.com

auth.servizilocalispa.it

b.grabo.bg

azaunited.org

b2b.partcommunity.com

balmainsailingclub.com

banatanama.ir

barbaradicretico.com

barnsleyfc.org.uk

barnesoysters.co.nz

bbs.clutchfans.net

bbs.sinbadgroup.org

bbs.sp.findfriends.jp

bbsapp.org

berghorst.nl

bellegrove.org

bestintravelmagazine.com

beta-doterra.myvoffice.com

biker.vn

biss.kz

blog.ss-blog.jp

bloomsburybowling.com

board-en-risingcities.platform-dev.bigpoint.com

board-en.darkorbit.com

bmwclub.lv

board-en.skyrama.com

board-en.drakensang.com

board-en.piratestorm.com

boardoptions.com

board-en.farmerama.com

bostitch.co.uk

bostitch.eu

brennoefen.ch

bu.do4a.me

bs10.ru

buboflash.eu

bugcrowd.com

bugcrowd.com

builds.openbuilds.com

buya2z.net

busho-tai.jp

c-nami.ru

cafemmo.club

campingbabble.com

captcha.2gis.ru

carolands.org

cart.pesca.jp

cart.by-shizuka.jp

cart.saravio.jp

catinstitute.org

cawatchablewildlife.org

cart.yuyu-kenko.co.jp

cdn.feather.blog

cdn.123fastcdn.com

celticminded.com

chaoti.csignal.org

checkmate.ua

chiase.org

chomoto.vn

chyba.o2.cz

citrus-cables.com

cities.bythenumbers.sco.ca.gov

cinesourcemagazine.com

cityofhuntington.com

clarkinphillips.com

clients1.google.ae

clients1.google.al

clients1.google.al

clients1.google.at

clients1.google.am

clients1.google.as

clients1.google.ba

clients1.google.az

clients1.google.be

clients1.google.be

clients1.google.bf

clients1.google.bg

clients1.google.bi

clients1.google.bi

clients1.google.bj

clients1.google.bs

clients1.google.ca

clients1.google.by

clients1.google.cd

clients1.google.cd

clients1.google.cg

clients1.google.cf

clients1.google.ch

clients1.google.ch

clients1.google.ci

clients1.google.cl

clients1.google.cl

clients1.google.co.ck

clients1.google.cm

clients1.google.co.bw

clients1.google.co.il

clients1.google.co.id

clients1.google.co.id

clients1.google.co.cr

clients1.google.co.in

clients1.google.co.jp

clients1.google.co.jp

clients1.google.co.ke

clients1.google.co.kr

clients1.google.co.ma

clients1.google.co.ls

clients1.google.co.nz

clients1.google.co.th

clients1.google.co.mz

clients1.google.co.mz

clients1.google.co.ug

clients1.google.co.uz

clients1.google.co.vi

clients1.google.co.uk

clients1.google.co.vi

clients1.google.co.za

clients1.google.co.za

clients1.google.com.af

clients1.google.com.af

clients1.google.com.ai

clients1.google.com.ar

clients1.google.com.au

clients1.google.com.au

clients1.google.co.ve

clients1.google.co.ve

clients1.google.com.bh

clients1.google.com.bh

clients1.google.com.bo

clients1.google.com.bn

clients1.google.com.br

clients1.google.com.br

clients1.google.com.br

clients1.google.com.co

clients1.google.com.co

clients1.google.com.bz

clients1.google.com.cu

clients1.google.com.bd

clients1.google.com.do

clients1.google.com.cy

clients1.google.com.ec

clients1.google.com.eg

clients1.google.com.ec

clients1.google.com.et

clients1.google.com.et

clients1.google.com.gi

clients1.google.com.hk

clients1.google.com.hk

clients1.google.com.fj

clients1.google.com.gt

clients1.google.com.gt

clients1.google.com.kh

clients1.google.com.kw

clients1.google.com.jm

clients1.google.com.mt

clients1.google.com.lb

clients1.google.com.mt

clients1.google.com.mx

clients1.google.com.mx

clients1.google.com.my

clients1.google.com.ni

clients1.google.com.ni

clients1.google.com.np

clients1.google.com.np

clients1.google.com.ng

clients1.google.com.pa

clients1.google.com.ph

clients1.google.com.pk

clients1.google.com.pe

clients1.google.com.pr

clients1.google.com.nf

clients1.google.com.py

clients1.google.com.qa

clients1.google.com.sb

clients1.google.com.sa

clients1.google.com.sg

clients1.google.com.sa

clients1.google.com.sl

clients1.google.com.sv

clients1.google.com.tj

clients1.google.com.tr

clients1.google.com.tr

clients1.google.com.tw

clients1.google.com.tw

clients1.google.com.ua

clients1.google.com.vn

clients1.google.com.vn

clients1.google.com.uy

clients1.google.com.uy

clients1.google.com.vc

clients1.google.cv

clients1.google.cz

clients1.google.de

clients1.google.de

clients1.google.dj

clients1.google.dk

clients1.google.dz

clients1.google.es

clients1.google.ee

clients1.google.es

clients1.google.dm

clients1.google.fi

clients1.google.fi

clients1.google.fr

clients1.google.fr

clients1.google.ga

clients1.google.fm

clients1.google.gm

clients1.google.gr

clients1.google.gp

clients1.google.hn

clients1.google.hn

clients1.google.hr

clients1.google.ht

clients1.google.ht

clients1.google.hu

clients1.google.ie

clients1.google.hu

clients1.google.ie

clients1.google.it

clients1.google.jo

clients1.google.is

clients1.google.kg

clients1.google.kg

clients1.google.iq

clients1.google.ki

clients1.google.iq

clients1.google.li

clients1.google.la

clients1.google.kz

clients1.google.lk

clients1.google.lt

clients1.google.lu

clients1.google.lu

clients1.google.lv

clients1.google.mk

clients1.google.md

clients1.google.md

clients1.google.mg

clients1.google.ml

clients1.google.mn

clients1.google.mw

clients1.google.mu

clients1.google.ms

clients1.google.nl

clients1.google.pl

clients1.google.no

clients1.google.pt

clients1.google.ps