{"id":228905,"date":"2022-10-19T13:38:00","date_gmt":"2022-10-19T10:38:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=228905"},"modified":"2022-11-09T04:45:05","modified_gmt":"2022-11-09T01:45:05","slug":"wordpressin-lohkoeditorin-laajennuksen-luominen-gutenberg","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/wordpressin-lohkoeditorin-laajennuksen-luominen-gutenberg\/","title":{"rendered":"WordPressin lohkoeditorin laajennuksen luominen (Gutenberg)"},"content":{"rendered":"\n<p>Jos olet uusi WordPress Block Editor (Gutenberg) -k\u00e4ytt\u00e4j\u00e4, saatat mietti\u00e4, kuinka voit aloittaa oman laajennuksen luomisen.<\/p>\n<p>Onneksi WordPress-kehitystiimill\u00e4 on k\u00e4tev\u00e4 <code>npm<\/code> <a href=\"https:\/\/www.npmjs.com\/package\/@wordpress\/create-block\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">komentosarja, jolla voit luoda lohkolaajennuksen<\/a>, joka luo aloituslohkon, jotta p\u00e4\u00e4set nopeasti k\u00e4yntiin.<\/p>\n<p>Oletuksena t\u00e4m\u00e4n luoma WordPress-laajennus on &quot;blokki&quot;, mutta se antaa meille my\u00f6s hyv\u00e4n aloituskohdan muunlaisille Gutenberg-laajennuksille.<\/p>\n<h2>Edellytykset<\/h2>\n<ul>\n<li><a href=\"https:\/\/nodejs.org\/en\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Node on asennettava koneellesi,<\/a> jotta voit k\u00e4ytt\u00e4\u00e4 <code>npm<\/code>komentoa (joka tarkoittaa Node Package Manageria)<\/li>\n<li>WordPressin asennus<\/li>\n<li>Koodieditori<\/li>\n<li>P\u00e4\u00e4sy terminaaliin<\/li>\n<\/ul>\n<h2>Luo laajennus<\/h2>\n<p>Kun olet asentanut solmun koneellesi, sinulla pit\u00e4isi olla p\u00e4\u00e4sy <code>npm<\/code>komentoon p\u00e4\u00e4tteess\u00e4si.<\/p>\n<p>Avaa p\u00e4\u00e4telaite ja varmista, ett\u00e4 olet valinnut <code>cd<\/code>&#8217;d (Changed Directory) WordPress-asennuksesi plugins-kansioon (esim <code>cd wp-content\/plugins<\/code>. ).<\/p>\n<p>Kun olet siell\u00e4, suorita seuraava komento:<\/p>\n<pre><code>npm init @wordpress\/block\n<\/code><\/pre>\n<p>T\u00e4m\u00e4 lataa kaiken, mit\u00e4 komentosarja tarvitsee rakentamisen aloittamiseksi. Kun se on valmis, skripti kysyy sinulta joukon kysymyksi\u00e4, joita tarvitaan laajennuksen m\u00e4\u00e4ritt\u00e4miseen.<\/p>\n<p>P\u00e4\u00e4tteen k\u00e4ytt\u00e4minen Luo komentosarjan suorittamiseen<\/p>\n<h3>M\u00e4\u00e4rityskysymykset<\/h3>\n<p>K\u00e4sikirjoitus kysyy seuraavat kysymykset, t\u00e4ss\u00e4 ovat esimerkkivastaukseni:<\/p>\n<ul>\n<li>\n<p><strong>Tunnistamiseen k\u00e4ytetty lohkoslug (my\u00f6s laajennuksen ja tuloskansion nimi)<\/strong> \u2014 Haluan, ett\u00e4 lohkoani kutsutaan nimell\u00e4 <code>Wholesome Plugin<\/code>, joten kirjoitin <code>wholesome-plugin<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>Lohkon nimen sis\u00e4inen nimiavaruus (jotain ainutlaatuista tuotteillesi)<\/strong> \u2013 T\u00e4m\u00e4n pit\u00e4isi olla yksil\u00f6llinen kaikille sy\u00f6tt\u00e4milleni tuotteille <code>wholesomecode<\/code>, koska t\u00e4m\u00e4 on yritykseni nimi.<\/p>\n<\/li>\n<li>\n<p><strong>Lohkosi n\u00e4ytt\u00f6otsikko<\/strong> \u2014 annoin laajennuksen otsikon, <code>Wholesome Plugin<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>Lohkosi lyhyt kuvaus (valinnainen)<\/strong> \u2014 kirjoitin &quot; <code>An example plugin to demonstrate the create-block-script<\/code>&quot;.<\/p>\n<\/li>\n<li>\n<p><strong>Dashicon, joka helpottaa lohkosi tunnistamista (valinnainen)<\/strong> \u2014 Valitsin <a href=\"https:\/\/developer.wordpress.org\/resource\/dashicons\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPress Dashicons -resurssin<\/a><code>admin-plugins<\/code> nopeasti esiin, koska siin\u00e4 on laajennuskuvake. Muista j\u00e4tt\u00e4\u00e4 dashicon- etuliitteest\u00e4 pois t\u00e4t\u00e4 tehdess\u00e4si.<\/p>\n<\/li>\n<li>\n<p><strong>Luokan nimi, joka auttaa k\u00e4ytt\u00e4ji\u00e4 selaamaan ja l\u00f6yt\u00e4m\u00e4\u00e4n lohkosi (k\u00e4yt\u00e4 nuolin\u00e4pp\u00e4imi\u00e4)<\/strong> \u2013 valitsin <code>design<\/code>. Vaikka mukautettu luokka olisi todenn\u00e4k\u00f6isesti parempi.<\/p>\n<\/li>\n<li>\n<p><strong>Laajennuksen tekij\u00e4n nimi (valinnainen). Useita kirjoittajia voidaan luetteloida pilkuilla<\/strong> \u2014 kirjoitin <code>wholesomecode<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>Laajennuksen lisenssin lyhyt nimi (valinnainen)<\/strong> \u2013 Painoin Enter hyv\u00e4ksy\u00e4kseni GPL v2.0:n tai uudemman.<\/p>\n<\/li>\n<li>\n<p><strong>Linkki lisenssin koko tekstiin (valinnainen)<\/strong> \u2013 Painoin enteri\u00e4 lis\u00e4t\u00e4kseni GPL v2.0 -lisenssin URL-osoitteen.<\/p>\n<\/li>\n<li>\n<p><strong>Laajennuksen nykyinen versionumero<\/strong> \u2014 Painoin enteri\u00e4 lis\u00e4t\u00e4kseni <code>0.1.0<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0d770fb3.png\" alt=\"WordPressin lohkoeditorin laajennuksen luominen (Gutenberg)\" \/>Komentosarjan konfigurointikysymykset<\/p>\n<p>Skripti p\u00e4\u00e4ttyy sen j\u00e4lkeen.<\/p>\n<h3>Mit\u00e4 juuri tapahtui?<\/h3>\n<p>Muutamia asioita tapahtuu, kun komentosarja on k\u00e4ynniss\u00e4, n\u00e4m\u00e4 ovat:<\/p>\n<ul>\n<li>Se luo laajennuksen kansion,<\/li>\n<li>Se luo kaikki liit\u00e4nn\u00e4istiedostot (<a href=\"https:\/\/wholesomecode.ltd\/#exploring-the-plugin\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">katso lis\u00e4osien tutkiminen saadaksesi lis\u00e4tietoja niiden toiminnasta<\/a> )<\/li>\n<li>Se asentaa tarvitsemansa riippuvuudet, mukaan lukien <code>@wordpress\/scripts<\/code>paketin (t\u00e4m\u00e4 tekee laajennuksen rakentamisesta raskaan)<\/li>\n<li>Se kokoaa koodin<\/li>\n<li>Se tulostaa luettelon komennoista, joita voit k\u00e4ytt\u00e4\u00e4<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0d865300.png\" alt=\"WordPressin lohkoeditorin laajennuksen luominen (Gutenberg)\" \/>Rakenna komentoja<\/p>\n<p>Tutkimme n\u00e4it\u00e4 lis\u00e4\u00e4 <a href=\"https:\/\/wholesomecode.ltd\/wp\/wp-admin\/post.php?post=4268&#038;action=edit#exploring-the-plugin\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">laajennuksia k\u00e4sittelev\u00e4ss\u00e4<\/a> osiossa.<\/p>\n<h2>Pluginin k\u00e4ytt\u00e4minen<\/h2>\n<p>Ennen kuin voit k\u00e4ytt\u00e4\u00e4 laajennusta, sinun on aktivoitava se. Voit tehd\u00e4 t\u00e4m\u00e4n valitsemalla <code>Plugins<\/code>WordPressin j\u00e4rjestelm\u00e4nvalvojan valikosta ja valitsemalla sitten <code>activate<\/code>laajennuksen nimen alta.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0d958ea6.gif\" alt=\"WordPressin lohkoeditorin laajennuksen luominen (Gutenberg)\" \/>Aktivoi Plugin<\/p>\n<p>Nyt sinun on muokattava viesti\u00e4 WordPressiss\u00e4 ja lis\u00e4tt\u00e4v\u00e4 laajennus Gutenberg-editorilla.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0db497f6.gif\" alt=\"WordPressin lohkoeditorin laajennuksen luominen (Gutenberg)\" \/>Lohkon lis\u00e4\u00e4minen viestiin<\/p>\n<p>Huomaa, ett\u00e4 laajennus ei tee paljon oletusarvoa, se vain luo lohkon. Se tarjoaa kuitenkin puitteet, joita voit k\u00e4ytt\u00e4\u00e4 oman laajennuksen rakentamiseen.<\/p>\n<h3>Lohkon katselu k\u00e4ytt\u00f6liittym\u00e4ss\u00e4<\/h3>\n<p>Oletuksena lohko n\u00e4ytt\u00e4\u00e4 t\u00e4lt\u00e4 etup\u00e4\u00e4ss\u00e4. Huomaa, ett\u00e4 sill\u00e4 on hieman erilainen ulkoasu, t\u00e4m\u00e4 on tarkoituksellista, jotta voit tutustua WordPressin etu- ja takaosan CSS:\u00e4\u00e4n.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0dd10fa2.png\" alt=\"WordPressin lohkoeditorin laajennuksen luominen (Gutenberg)\" \/>Block etup\u00e4\u00e4ss\u00e4<\/p>\n<h2>Pluginin tutkiminen<\/h2>\n<p>Luo lohkokomentosarjan koko tarkoitus on, ett\u00e4 voit luoda oman laajennuksen. Tutkitaanpa yksityiskohtaisemmin sen luomia tiedostoja:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0de1777f.png\" alt=\"WordPressin lohkoeditorin laajennuksen luominen (Gutenberg)\" \/>Luodut tiedostot<\/p>\n<p><strong><code>wholesome-plugin<\/code><\/strong>\u2014 T\u00e4m\u00e4 on laajennuksen juurikansio, sill\u00e4 on sama nimi kuin se, jonka annoin &#8217;slug&#8217;:lle asennuskysymyksiss\u00e4.<\/p>\n<p><code>**\/build**<\/code>\u2014 T\u00e4m\u00e4 on koontikansio. Se sis\u00e4lt\u00e4\u00e4 kaikki <code>\/src<\/code>kansiosta luodut JavaScript- ja PHP-resurssit. N\u00e4m\u00e4 asetetaan jonoon p\u00e4\u00e4lataustiedoston kautta <code>wholesome-notes.php<\/code>.<\/p>\n<p><code>**\/build\/index.assets.php**<\/code>\u2014 T\u00e4m\u00e4 PHP-tiedosto luodaan automaattisesti, kun <code>\/src<\/code>kansio k\u00e4\u00e4nnet\u00e4\u00e4n. Se sis\u00e4lt\u00e4\u00e4 joukon kaikkia laajennuksen k\u00e4ytt\u00e4mi\u00e4 WordPress Editorin (Gutenberg) JavaScript-syvyyksi\u00e4. Se asetetaan jonoon p\u00e4\u00e4lataustiedoston kautta <code>wholesome-plugin.php<\/code>.<\/p>\n<p><code>**\/build\/index.css**<\/code>\u2014 T\u00e4m\u00e4 on editorin CSS-tiedosto, ja se asetetaan jonoon p\u00e4\u00e4lataustiedoston kautta <code>wholesome-plugin.php<\/code>.<\/p>\n<p><code>**\/build\/index.js**<\/code>\u2014 T\u00e4m\u00e4 on t\u00e4rkein k\u00e4\u00e4nnetty JavaScript-tiedosto, ja se asetetaan jonoon p\u00e4\u00e4lataustiedoston kautta <code>wholesome-plugin.php<\/code>.<\/p>\n<p><code>**\/build\/style-index.css**<\/code>\u2014 T\u00e4m\u00e4 on k\u00e4ytt\u00f6liittym\u00e4n CSS-tiedosto, ja se asetetaan jonoon p\u00e4\u00e4lataustiedoston kautta <code>wholesome-plugin.php<\/code>.<\/p>\n<p><code>**\/build\/index.js.map**<\/code>\u2014 T\u00e4m\u00e4 tiedosto luodaan vain, kun k\u00e4\u00e4nn\u00e4t resursseja kehitystilaa varten (IE k\u00e4yt\u00e4t, <code>npm start<\/code>etk\u00e4 <code>npm build<\/code>kun k\u00e4\u00e4nn\u00e4t resursseja. Se on hy\u00f6dyllinen tiedosto JavaScript-virheenkorjaajille, joka auttaa tunnistamaan tiedostojen nimet ja rivinumerot virheiden sattuessa.<\/p>\n<ul>\n<li>\n<p><code>**\/node_modules**<\/code>\u2014 T\u00e4m\u00e4 on kansio, johon kaikki laajennuksen JavaScript-riippuvuudet on asennettu.<\/p>\n<\/li>\n<li>\n<p><code>**\/src**<\/code>\u2014 T\u00e4m\u00e4 on kansio, joka sis\u00e4lt\u00e4\u00e4 kaikki laajennukseesi k\u00e4\u00e4nt\u00e4m\u00e4tt\u00f6m\u00e4t resurssit.<\/p>\n<\/li>\n<li>\n<p><code>**\/src\/edit.js**<\/code>\u2014 T\u00e4m\u00e4 on lohkon muokkaustoiminto ja ohjaa, kuinka lohko n\u00e4ytet\u00e4\u00e4n lohkoeditorissa, kun se on muokkaustilassa.<\/p>\n<\/li>\n<li>\n<p><code>**\/src\/editor.scss**<\/code>\u2014 T\u00e4m\u00e4 on k\u00e4\u00e4nt\u00e4m\u00e4t\u00f6n SCSS editorille, t\u00e4m\u00e4 k\u00e4\u00e4nnet\u00e4\u00e4n osaksi <code>\/build\/index.css<\/code>.<\/p>\n<\/li>\n<li>\n<p><code>**\/src\/index.js**<\/code>\u2014 T\u00e4m\u00e4 on t\u00e4rkein k\u00e4\u00e4nt\u00e4m\u00e4t\u00f6n JavaScript-tiedosto WordPress Editor (Gutenberg) -lohkollesi. Se rekister\u00f6i lohkon ja sis\u00e4lt\u00e4\u00e4 oletusasetukset.<\/p>\n<\/li>\n<li>\n<p><code>**\/src\/save.js**<\/code>\u2014 T\u00e4m\u00e4 on lohkon tallennustoiminto ja ohjaa lohkon merkint\u00f6j\u00e4, kun se tallennetaan.<\/p>\n<\/li>\n<li>\n<p><code>**\/src\/style.scss**<\/code>\u2014 T\u00e4m\u00e4 on k\u00e4\u00e4nt\u00e4m\u00e4t\u00f6n SCSS k\u00e4ytt\u00f6liittym\u00e4lle, t\u00e4m\u00e4 k\u00e4\u00e4nnet\u00e4\u00e4n osaksi <code>\/build\/style-index.css<\/code>.<\/p>\n<\/li>\n<li>\n<p><code>**\/.editorconfig**<\/code>\u2014 T\u00e4m\u00e4 tiedosto sis\u00e4lt\u00e4\u00e4 hy\u00f6dyllisi\u00e4 esiasetuksia IDE:lle (Integrated Development Environment), kuten Visual Studio Code.<\/p>\n<\/li>\n<li>\n<p><code>**\/.gitignore**<\/code>\u2014 T\u00e4m\u00e4 tiedosto k\u00e4skee giti\u00e4 ohittamaan tietyt tiedostot, kun sitoudut git-tietovarastoon (kuten GitHubiin).<\/p>\n<\/li>\n<li>\n<p><code>**\/editor.css**<\/code>\u2014 T\u00e4m\u00e4n tiedoston tyylit tulostetaan vain editorissa, se asetetaan jonoon p\u00e4\u00e4lataustiedoston kautta <code>wholesome-notes.php<\/code>.<\/p>\n<\/li>\n<li>\n<p><code>**\/block.json**<\/code>\u2014 T\u00e4m\u00e4 tiedosto m\u00e4\u00e4ritt\u00e4\u00e4 laajennuksen, jotta WordPressin lohkokirjasto voi l\u00f6yt\u00e4\u00e4 sen. Jos teet muutoksia laajennukseen, varmista, ett\u00e4 t\u00e4m\u00e4 tiedosto on p\u00e4ivitetty. NPM-komentosarjan uudemmissa versioissa t\u00e4t\u00e4 tiedostoa k\u00e4ytet\u00e4\u00e4n lohkosi <code>\/src\/index.js<\/code>rekister\u00f6innin sijaan.<\/p>\n<\/li>\n<li>\n<p><code>**\/package.json**<\/code>\u2014 T\u00e4m\u00e4 tiedosto sis\u00e4lt\u00e4\u00e4 kaikki laajennuksen npm-riippuvuudet ja komennot, jotka voit suorittaa. Huomaa, ett\u00e4 laajennus k\u00e4ytt\u00e4\u00e4 <code>wp-scripts<\/code>( <code>@wordpress\/scripts<\/code>) pohjanaan, joten alun perin ladatut riippuvuudet ovat t\u00e4lle paketille.<\/p>\n<\/li>\n<li>\n<p><code>**\/readme.txt**<\/code>\u2014 T\u00e4m\u00e4 tiedosto on WordPress-laajennusten arkiston readme-tiedosto, jota tarvitaan, jos haluat, ett\u00e4 lohko luetellaan laajennusarkistoon.<\/p>\n<\/li>\n<li>\n<p><code>**\/wholesome-plugin.php**<\/code>\u2014 T\u00e4m\u00e4 on laajennuksen p\u00e4\u00e4lataustiedosto. Sen nimi asetettiin &quot;slugin&quot; kautta, jonka sy\u00f6timme alkuper\u00e4iseen asennusohjelmaan. Se asettaa jonoon kaikki laajennuksen tarvitsemat JavaScript-omaisuudet.<\/p>\n<\/li>\n<\/ul>\n<h3>Rakennuskomentojen tutkiminen<\/h3>\n<p>Ennen kuin voimme suorittaa rakennuskomentojamme, meid\u00e4n on varmistettava, ett\u00e4 olemme laajennuskansiossa. T\u00e4ss\u00e4 esimerkiss\u00e4 ajaisimme <code>cd wholesome-plugin<\/code>terminaalissa vaihtamaan hakemiston laajennuskansioomme.<\/p>\n<p>Voimme sitten suorittaa seuraavat komennot:<\/p>\n<ul>\n<li>\n<p><code>**npm start**<\/code>\u2014 Aloittaa rakentamisen kehityst\u00e4 varten. Jos teet muutoksia laajennukseen, sinun on teht\u00e4v\u00e4 t\u00e4m\u00e4, jotta muutokset tulevat n\u00e4kyviin (sinun on todenn\u00e4k\u00f6isesti my\u00f6s p\u00e4ivitett\u00e4v\u00e4 selaimesi).<\/p>\n<\/li>\n<li>\n<p><code>**npm run build**<\/code>\u2014 Rakentaa koodin tuotantoa varten. Tee t\u00e4m\u00e4, jos olet luomassa laajennuksen julkaisuversiota.<\/p>\n<\/li>\n<li>\n<p><code>**npm run format:js**<\/code>\u2014 Alustaa JavaScript-tiedostot automaattisesti parhaiden k\u00e4yt\u00e4nt\u00f6jen mukaisesti.<\/p>\n<\/li>\n<li>\n<p><code>**npm run lint:css**<\/code>\u2014 Lints (etsii virheit\u00e4) CSS-tiedostoja.<\/p>\n<\/li>\n<li>\n<p><code>**npm run lint:js**<\/code>\u2014 Lints (etsii virheit\u00e4) JavaScript-tiedostoja.<\/p>\n<\/li>\n<li>\n<p><code>**npm run packages-update**<\/code>&#8211; P\u00e4ivitt\u00e4\u00e4 WordPress-paketit uusimpaan versioon.<\/p>\n<\/li>\n<\/ul>\n<p>K\u00e4yt\u00e4mme yht\u00e4 tai useampaa n\u00e4ist\u00e4, kun muokkaamme laajennusta.<\/p>\n<h2>Pluginin muokkaaminen<\/h2>\n<p>Aloitetaan tekem\u00e4ll\u00e4 lohkostamme muokattavissa.<\/p>\n<h3>Lis\u00e4\u00e4 attribuutteja kohteeseen<code>\/src\/index.js<\/code><\/h3>\n<p>Avaa <code>\/src\/index.js<\/code>editorissasi ja lis\u00e4\u00e4 seuraava <code>registerBlockType<\/code>funktion sis\u00e4\u00e4n kohtaan <code>apiVersion<\/code>:<\/p>\n<pre><code>attributes: {\n  blockText: {\n    default: 'Wholesome Plugin \u2013 hello from the editor!',\n    type: 'string',\n  },\n},\n<\/code><\/pre>\n<p>T\u00e4m\u00e4 antaa meille paikan tallentaa tiedot laajennuksessamme nimelt\u00e4\u00e4n <code>blockText<\/code>Accessible via <code>attributes<\/code>property (prop). Huomaa, ett\u00e4 olemme antaneet sille oletusarvon luontilaajennuksen komentosarjan luomasta alkuper\u00e4isest\u00e4 tekstist\u00e4.<\/p>\n<h3>Lis\u00e4\u00e4 RichText kohteeseen<code>\/src\/edit.js<\/code><\/h3>\n<p>Avaa <code>\/src\/edit.js<\/code>editorissasi ja korvaa tuonti kohteelle <code>useBlockProps<\/code>seuraavalla:<\/p>\n<pre><code>import { RichText, useBlockProps } from '@wordpress\/block-editor';\n<\/code><\/pre>\n<p>T\u00e4m\u00e4 antaa meille mahdollisuuden k\u00e4ytt\u00e4\u00e4 RichText-komponenttia muokkaustavassamme.<\/p>\n<p>Muuta sitten koko muokkaustoiminto seuraavaksi:<\/p>\n<pre><code>export default function Edit( { attributes, setAttributes }) {\n    const { blockText } = attributes;\n    return (&lt;p { ...useBlockProps() }&gt;\n            &lt;RichText\n                className=\"block__text\"\n                keepPlaceholderOnFocus\n                onChange={ (blockText) =&gt; setAttributes( { blockText }) }\n                placeholder={ __( 'Block Text', 'wholesome-plugin') }\n                tagName=\"span\"\n                value={ blockText }\n            \/&gt;\n        &lt;\/p&gt;\n    );\n}\n<\/code><\/pre>\n<p>T\u00e4m\u00e4 asettaa komponentin arvon <code>RichText<\/code>samaksi kuin <code>blockText<\/code>attribuutissa tallennettu arvo, ja <code>onChange<\/code>ominaisuus m\u00e4\u00e4ritt\u00e4\u00e4 <code>blockText<\/code>attribuutin sen, mik\u00e4 komponenttiin on koskaan sy\u00f6tetty <code>RichText<\/code>.<\/p>\n<h3>Tulosta attribuutit sis\u00e4\u00e4n<code>\/src\/save.js<\/code><\/h3>\n<p>Avaa <code>\/src\/save.js<\/code>editorissasi ja korvaa <code>save<\/code>funktio seuraavalla:<\/p>\n<pre><code>export default function save( { attributes }) {\n    const { blockText } = attributes;\n    return (&lt;p { ...useBlockProps.save() }&gt;\n            { blockText }\n        &lt;\/p&gt;\n    );\n}\n<\/code><\/pre>\n<p>T\u00e4m\u00e4 yksinkertaisesti tulostaa arvon <code>blockText<\/code>kappaleeseen.<\/p>\n<h3>Pluginin k\u00e4\u00e4nt\u00e4minen<\/h3>\n<p>Avaa p\u00e4\u00e4te, varmista, ett\u00e4 olet laajennuksen juurihakemistossa ja suorita seuraava komento:<\/p>\n<p>K\u00e4sikirjoitus kootaan. Jos sinulla on virheit\u00e4, p\u00e4\u00e4tteen pit\u00e4isi ilmoittaa sinulle, mit\u00e4 ne ovat.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0df5e2a4.gif\" alt=\"WordPressin lohkoeditorin laajennuksen luominen (Gutenberg)\" \/>Pluginin rakentaminen<\/p>\n<h3>Lis\u00e4osan lis\u00e4\u00e4minen<\/h3>\n<p>Varmista, ett\u00e4 olet p\u00e4ivitt\u00e4nyt viestisi. Lohkon edellinen versio voi nyt olla rikki, t\u00e4m\u00e4 on hyv\u00e4, poista se ja lis\u00e4\u00e4 uusi.<\/p>\n<p>Lis\u00e4\u00e4 lohko k\u00e4ytt\u00e4m\u00e4ll\u00e4 editorin vasemmassa yl\u00e4kulmassa olevaa plussymbolia, ja kun se on lis\u00e4tty, napsauta sen teksti\u00e4. Sinun pit\u00e4isi. nyt voi muokata teksti\u00e4.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0e151e82.gif\" alt=\"WordPressin lohkoeditorin laajennuksen luominen (Gutenberg)\" \/>Muokattavan lohkon lis\u00e4\u00e4minen<\/p>\n<h3>Pluginin katselu<\/h3>\n<p>Tallenna viesti ja katso se verkkosivuston etuosassa, muokkaamasi teksti tulee n\u00e4kyviin alkuper\u00e4isen tekstin sijaan.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0e327430.png\" alt=\"WordPressin lohkoeditorin laajennuksen luominen (Gutenberg)\" \/>Muokattava lohko verkkosivuston etuosassa<\/p>\n<p>Jos haluat lohkosi n\u00e4kyv\u00e4n mukautetussa lohkoluokassa, lis\u00e4\u00e4 vain seuraava koodi laajennuksen juureen (t\u00e4ss\u00e4 tapauksessa <code>wholesome-plugin.php<\/code>:<\/p>\n<pre><code>function wholesomecode_wholesome_plugin_block_categories( $categories) {\n    return array_merge(\n        $categories,\n        [\n            [\n                'slug'  =&gt; 'wholesome-blocks',\n                'title' =&gt; __( 'Wholesome Blocks', 'wholesome-boilerplate' ),\n            ],\n        ]\n    );\n}\nadd_action( 'block_categories', 'wholesomecode_wholesome_plugin_block_categories', 10, 2 );\n<\/code><\/pre>\n<p>T\u00e4m\u00e4 rekister\u00f6i mukautetun lohkoluokan lohkon lis\u00e4yslaitteeseen.<\/p>\n<p>Sitten sinun tarvitsee vain s\u00e4\u00e4t\u00e4\u00e4 funktion <code>category<\/code>argumentti viittaamaan lohkoluokkaasi ja k\u00e4\u00e4nt\u00e4\u00e4 uudelleen:<code>registerBlockType``\/src\/index.js<\/code><\/p>\n<pre><code>\ncategory: 'wholesome-blocks',\n<\/code><\/pre>\n<p>Nyt kun tulet lis\u00e4\u00e4m\u00e4\u00e4n lohkoasi, l\u00f6yd\u00e4t sen juuri luomastasi lohkoluokasta:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0e40fe2e.png\" alt=\"WordPressin lohkoeditorin laajennuksen luominen (Gutenberg)\" \/>Mukautettu lohkoluokka Block Inserterissa<\/p>\n<ul>\n<li>Tutustu <a href=\"https:\/\/wholesomecode.ltd\/guides\/php-render-block-wordpress-gutenberg\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP:n k\u00e4ytt\u00e4miseen lohkon render\u00f6imiseen dynaamisilla lohkoilla<\/a><\/li>\n<li>Tarkastele <a href=\"https:\/\/wholesomecode.ltd\/guides\/post-meta-fields-store-attributes-wordpress-gutenberg\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">post-metakenttien k\u00e4ytt\u00f6\u00e4 lohkosi attribuutteina<\/a><\/li>\n<li><a href=\"https:\/\/wholesomecode.ltd\/guides\/add-sidebar-controls-to-your-custom-wordpress-block-with-inspectorcontrols\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Lis\u00e4\u00e4 lohkosivupalkki InspectorControlsilla<\/a><\/li>\n<li>Laajenna laajennusta <a href=\"https:\/\/wholesomecode.ltd\/guides\/entry-points-wordpress-create-block-script\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">lis\u00e4\u00e4m\u00e4ll\u00e4 uusia tulopisteit\u00e4 webpack.config-tiedostoon<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/wholesomecode.ltd\" class=\"external external_icon\">wholesomecode.ltd<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jos olet uusi WordPress Block Editorin (Gutenberg) k\u00e4ytt\u00e4j\u00e4, saatat mietti\u00e4, kuinka aloittaa oman laajennuksen luominen. Onneksi WordPress-kehitystiimill\u00e4 on k\u00e4tev\u00e4 &#8230;<\/p>\n","protected":false},"author":1,"featured_media":223619,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[750,938,719,895,813,843,803],"tags":[1166],"class_list":["post-228905","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-avoin-laehdekoodi","category-gutenberg-5","category-kehittaejae","category-koodi","category-laajennuksia","category-opetusohjelmia","category-php-5","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/228905","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/comments?post=228905"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/228905\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/223619"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=228905"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=228905"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=228905"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}