{"id":228255,"date":"2022-10-19T13:49:00","date_gmt":"2022-10-19T10:49:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=228255"},"modified":"2022-11-09T01:31:48","modified_gmt":"2022-11-08T22:31:48","slug":"skapa-ett-plugin-foer-wordpress-block-editor-gutenberg","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/skapa-ett-plugin-foer-wordpress-block-editor-gutenberg\/","title":{"rendered":"Skapa ett plugin f\u00f6r WordPress Block Editor (Gutenberg)"},"content":{"rendered":"\n<p>Om du \u00e4r ny p\u00e5 WordPress Block Editor (Gutenberg) kanske du undrar hur du kommer ig\u00e5ng med att skapa ditt eget plugin.<\/p>\n<p>Som tur \u00e4r har WordPress-utvecklingsteamet ett praktiskt <code>npm<\/code> <a href=\"https:\/\/www.npmjs.com\/package\/@wordpress\/create-block\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">skript f\u00f6r dig att skapa ett blockplugin<\/a> som skapar ett startblock s\u00e5 att du snabbt kan komma ig\u00e5ng.<\/p>\n<p>Som standard \u00e4r den typ av WordPress-plugin som detta skapar ett &quot;block&quot;, men det ger oss ocks\u00e5 en bra startpunkt f\u00f6r andra typer av Gutenberg-plugins.<\/p>\n<h2>F\u00f6ruts\u00e4ttningar<\/h2>\n<ul>\n<li><a href=\"https:\/\/nodejs.org\/en\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Node m\u00e5ste vara installerad p\u00e5 din maskin<\/a> s\u00e5 att du kan anv\u00e4nda <code>npm<\/code>kommandot (som st\u00e5r f\u00f6r Node Package Manager)<\/li>\n<li>WordPress installation<\/li>\n<li>Kodredigerare<\/li>\n<li>Tillg\u00e5ng till terminalen<\/li>\n<\/ul>\n<h2>Skapa din plugin<\/h2>\n<p>Efter att du har installerat nod p\u00e5 din maskin b\u00f6r du ha tillg\u00e5ng till <code>npm<\/code>kommandot i din terminal.<\/p>\n<p>\u00d6ppna din terminal och se till att du har g\u00e5tt <code>cd<\/code>(Changed Directory) till plugin-mappen i din WordPress-installation (t.ex. <code>cd wp-content\/plugins<\/code>).<\/p>\n<p>V\u00e4l d\u00e4r k\u00f6r f\u00f6ljande kommando:<\/p>\n<pre><code>npm init @wordpress\/block\n<\/code><\/pre>\n<p>Detta kommer att ladda ner allt skriptet beh\u00f6ver f\u00f6r att starta bygget. N\u00e4r det \u00e4r klart kommer skriptet att st\u00e4lla dig en rad fr\u00e5gor som beh\u00f6vs f\u00f6r att konfigurera din plugin.<\/p>\n<p>Anv\u00e4nda terminalen f\u00f6r att k\u00f6ra Skapa skript<\/p>\n<h3>Konfigurationsfr\u00e5gor<\/h3>\n<p>Skriptet kommer att st\u00e4lla f\u00f6ljande fr\u00e5gor, h\u00e4r \u00e4r mina exempelsvar:<\/p>\n<ul>\n<li>\n<p><strong>Blocket som anv\u00e4nds f\u00f6r identifiering (\u00e4ven namnet p\u00e5 plugin- och utdatamappen)<\/strong> \u2014 Jag vill att mitt block ska heta <code>Wholesome Plugin<\/code>, s\u00e5 jag skrev in <code>wholesome-plugin<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>Det interna namnutrymmet f\u00f6r blocknamnet (n\u00e5got unikt f\u00f6r dina produkter)<\/strong> \u2014 Eftersom detta borde vara unikt f\u00f6r alla mina produkter som jag skrev in <code>wholesomecode<\/code>, eftersom detta \u00e4r mitt f\u00f6retagsnamn.<\/p>\n<\/li>\n<li>\n<p><strong>Visningstiteln f\u00f6r ditt block<\/strong> \u2014 Jag skrev in titeln p\u00e5 plugin-programmet, <code>Wholesome Plugin<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>Den korta beskrivningen f\u00f6r ditt block (valfritt)<\/strong> \u2014 Jag skrev in &quot; <code>An example plugin to demonstrate the create-block-script<\/code>&quot;.<\/p>\n<\/li>\n<li>\n<p><strong>Dashikonen f\u00f6r att g\u00f6ra det l\u00e4ttare att identifiera ditt block (valfritt)<\/strong> \u2014 Jag valde att snabbt ta fram <a href=\"https:\/\/developer.wordpress.org\/resource\/dashicons\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPress Dashicons-resursen<\/a><code>admin-plugins<\/code> eftersom den har en plugin-ikon. Kom ih\u00e5g att utel\u00e4mna dashicon- fr\u00e5n dashicon-prefixet n\u00e4r du g\u00f6r detta.<\/p>\n<\/li>\n<li>\n<p><strong>Kategorinamnet f\u00f6r att hj\u00e4lpa anv\u00e4ndare att bl\u00e4ddra och uppt\u00e4cka ditt block (anv\u00e4nd piltangenterna)<\/strong> \u2014 jag valde <code>design<\/code>. \u00c4ven om en anpassad kategori f\u00f6rmodligen skulle passa b\u00e4ttre.<\/p>\n<\/li>\n<li>\n<p><strong>Namnet p\u00e5 plugin-f\u00f6rfattaren (valfritt). Flera f\u00f6rfattare kan listas med kommatecken<\/strong> \u2014 jag skrev in <code>wholesomecode<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>Det korta namnet p\u00e5 plugin-licensen (valfritt)<\/strong> \u2014 Jag tryckte p\u00e5 enter f\u00f6r att acceptera GPL v2.0 eller senare.<\/p>\n<\/li>\n<li>\n<p><strong>En l\u00e4nk till licensens fullst\u00e4ndiga text (valfritt)<\/strong> \u2014 Jag tryckte p\u00e5 enter f\u00f6r att infoga GPL v2.0-licensens URL.<\/p>\n<\/li>\n<li>\n<p><strong>Det aktuella versionsnumret f\u00f6r plugin<\/strong> &#8211; jag tryckte p\u00e5 enter f\u00f6r att infoga <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=\"Skapa ett plugin f\u00f6r WordPress Block Editor (Gutenberg)\" \/>Fr\u00e5gor om skriptkonfiguration<\/p>\n<p>Skriptet slutar k\u00f6ras.<\/p>\n<h3>Vad h\u00e4nde nyss?<\/h3>\n<p>N\u00e5gra saker h\u00e4nder medan skriptet k\u00f6rs, dessa \u00e4r:<\/p>\n<ul>\n<li>Det skapar mappen f\u00f6r plugin,<\/li>\n<li>Det genererar alla plugin-filer (<a href=\"https:\/\/wholesomecode.ltd\/#exploring-the-plugin\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">se utforska plugin-programmet f\u00f6r detaljer om vad dessa g\u00f6r<\/a> )<\/li>\n<li>Den installerar de beroenden den beh\u00f6ver, inklusive <code>@wordpress\/scripts<\/code>paketet (detta g\u00f6r det tunga lyftet n\u00e4r det g\u00e4ller att bygga pluginet)<\/li>\n<li>Den kompilerar koden<\/li>\n<li>Den matar ut en lista med kommandon som du kan anv\u00e4nda<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0d865300.png\" alt=\"Skapa ett plugin f\u00f6r WordPress Block Editor (Gutenberg)\" \/>Bygg kommandon<\/p>\n<p>Vi kommer att utforska dessa mer i avsnittet <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\">Utforska plugin-programmet .<\/a><\/p>\n<h2>Anv\u00e4nder plugin<\/h2>\n<p>Innan du kan anv\u00e4nda plugin-programmet m\u00e5ste du aktivera det. Du kan g\u00f6ra detta genom att v\u00e4lja <code>Plugins<\/code>fr\u00e5n WordPress admin-menyn och sedan v\u00e4lja <code>activate<\/code>under namnet p\u00e5 plugin-programmet.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0d958ea6.gif\" alt=\"Skapa ett plugin f\u00f6r WordPress Block Editor (Gutenberg)\" \/>Aktivera insticksprogrammet<\/p>\n<p>Nu m\u00e5ste du redigera ett inl\u00e4gg i WordPress och infoga plugin-programmet med Gutenberg-redigeraren.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0db497f6.gif\" alt=\"Skapa ett plugin f\u00f6r WordPress Block Editor (Gutenberg)\" \/>Infoga blocket i ett inl\u00e4gg<\/p>\n<p>Observera att insticksprogrammet inte g\u00f6r s\u00e5 mycket som standard, det skapar bara ett block. Det ger dock ett ramverk som du kan anv\u00e4nda f\u00f6r att bygga ditt eget plugin.<\/p>\n<h3>Visa blocket p\u00e5 fronten<\/h3>\n<p>Som standard ser blocket ut s\u00e5 h\u00e4r p\u00e5 fronten. Observera att det har ett lite annorlunda utseende, detta \u00e4r avsiktligt s\u00e5 att du kan bekanta dig med CSS p\u00e5 framsidan och baksidan av WordPress.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0dd10fa2.png\" alt=\"Skapa ett plugin f\u00f6r WordPress Block Editor (Gutenberg)\" \/>Blocket p\u00e5 fronten<\/p>\n<h2>Utforska plugin-programmet<\/h2>\n<p>Hela syftet med Create Block Script \u00e4r att du ska skapa ditt eget plugin. L\u00e5t oss utforska filerna som den genererade mer i detalj:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0de1777f.png\" alt=\"Skapa ett plugin f\u00f6r WordPress Block Editor (Gutenberg)\" \/>Genererade filer<\/p>\n<p><strong><code>wholesome-plugin<\/code><\/strong>\u2014 Det h\u00e4r \u00e4r rotmappen f\u00f6r plugin-programmet, det har samma namn som det jag angav f\u00f6r &#8217;slug&#8217; i installationsfr\u00e5gorna.<\/p>\n<p><code>**\/build**<\/code>\u2014 Det h\u00e4r \u00e4r byggmappen. Den inneh\u00e5ller alla JavaScript- och PHP-tillg\u00e5ngar som genereras fr\u00e5n <code>\/src<\/code>mappen. Dessa k\u00f6as via huvudladdningsfilen <code>wholesome-notes.php<\/code>.<\/p>\n<p><code>**\/build\/index.assets.php**<\/code>\u2014 Den h\u00e4r PHP-filen genereras automatiskt n\u00e4r <code>\/src<\/code>mappen kompileras. Den inneh\u00e5ller en upps\u00e4ttning av alla WordPress Editor (Gutenberg) JavaScript-anst\u00e4ndigheter som anv\u00e4nds av ditt plugin. Den k\u00f6as via huvudladdningsfilen <code>wholesome-plugin.php<\/code>.<\/p>\n<p><code>**\/build\/index.css**<\/code>\u2014 Det h\u00e4r \u00e4r editorns CSS-fil och k\u00f6as via huvudladdningsfilen <code>wholesome-plugin.php<\/code>.<\/p>\n<p><code>**\/build\/index.js**<\/code>\u2014 Detta \u00e4r den huvudsakliga kompilerade JavaScript-filen och k\u00f6as via huvudladdarfilen <code>wholesome-plugin.php<\/code>.<\/p>\n<p><code>**\/build\/style-index.css**<\/code>\u2014 Det h\u00e4r \u00e4r frontend-CSS-filen och k\u00f6as via huvudladdningsfilen <code>wholesome-plugin.php<\/code>.<\/p>\n<p><code>**\/build\/index.js.map**<\/code>\u2014 Den h\u00e4r filen genereras bara n\u00e4r du kompilerar tillg\u00e5ngarna f\u00f6r utvecklingsl\u00e4ge (IE som du k\u00f6r <code>npm start<\/code>och inte <code>npm build<\/code>n\u00e4r du kompilerar dina tillg\u00e5ngar. Det \u00e4r en anv\u00e4ndbar fil f\u00f6r JavaScript-fels\u00f6kare f\u00f6r att hj\u00e4lpa till att identifiera filnamn och radnummer om fel uppst\u00e5r.<\/p>\n<ul>\n<li>\n<p><code>**\/node_modules**<\/code>\u2014 Det h\u00e4r \u00e4r mappen som alla JavaScript-beroenden f\u00f6r ditt plugin \u00e4r installerade i.<\/p>\n<\/li>\n<li>\n<p><code>**\/src**<\/code>\u2014 Det h\u00e4r \u00e4r mappen som inneh\u00e5ller alla okompilerade tillg\u00e5ngar f\u00f6r din plugin.<\/p>\n<\/li>\n<li>\n<p><code>**\/src\/edit.js**<\/code>\u2014 Detta \u00e4r blockets redigeringsfunktion och styr hur blocket visas i blockredigeraren n\u00e4r det \u00e4r i redigeringsl\u00e4ge.<\/p>\n<\/li>\n<li>\n<p><code>**\/src\/editor.scss**<\/code>\u2014 Detta \u00e4r den okompilerade SCSS f\u00f6r redakt\u00f6ren, den kommer att kompileras till <code>\/build\/index.css<\/code>.<\/p>\n<\/li>\n<li>\n<p><code>**\/src\/index.js**<\/code>\u2014 Detta \u00e4r den huvudsakliga okompilerade JavaScript-filen f\u00f6r ditt WordPress Editor (Gutenberg) block. Den registrerar blocket och inneh\u00e5ller standardinst\u00e4llningar.<\/p>\n<\/li>\n<li>\n<p><code>**\/src\/save.js**<\/code>\u2014 Detta \u00e4r blockets sparafunktion och styr uppm\u00e4rkningen av blocket n\u00e4r det sparas.<\/p>\n<\/li>\n<li>\n<p><code>**\/src\/style.scss**<\/code>\u2014 Detta \u00e4r den okompilerade SCSS f\u00f6r frontend, denna kommer att kompileras till <code>\/build\/style-index.css<\/code>.<\/p>\n<\/li>\n<li>\n<p><code>**\/.editorconfig**<\/code>\u2014 Den h\u00e4r filen inneh\u00e5ller anv\u00e4ndbara f\u00f6rinst\u00e4llningar f\u00f6r din IDE (Integrated Development Environment), som Visual Studio Code.<\/p>\n<\/li>\n<li>\n<p><code>**\/.gitignore**<\/code>\u2014 Den h\u00e4r filen s\u00e4ger \u00e5t git att ignorera vissa filer n\u00e4r du \u00f6verg\u00e5r till ett git-f\u00f6rr\u00e5d (som GitHub).<\/p>\n<\/li>\n<li>\n<p><code>**\/editor.css**<\/code>\u2014 Stilarna i den h\u00e4r filen matas endast ut i editorn, den k\u00f6as via huvudladdningsfilen <code>wholesome-notes.php<\/code>.<\/p>\n<\/li>\n<li>\n<p><code>**\/block.json**<\/code>\u2014 Den h\u00e4r filen definierar plugin-programmet s\u00e5 att det kan uppt\u00e4ckas av WordPress-blockbiblioteket. Om du g\u00f6r \u00e4ndringar i plugin-programmet, se till att den h\u00e4r filen uppdateras. I nyare versioner av NPM-skriptet anv\u00e4nds denna fil ist\u00e4llet f\u00f6r <code>\/src\/index.js<\/code>att registrera ditt block.<\/p>\n<\/li>\n<li>\n<p><code>**\/package.json**<\/code>\u2014 Den h\u00e4r filen inneh\u00e5ller alla npm-beroenden f\u00f6r plugin-programmet och de kommandon som du kan k\u00f6ra. Observera att plugin-programmet anv\u00e4nder <code>wp-scripts<\/code>( <code>@wordpress\/scripts<\/code>) som sin bas, s\u00e5 till en b\u00f6rjan g\u00e4ller de beroenden som laddas f\u00f6r det paketet.<\/p>\n<\/li>\n<li>\n<p><code>**\/readme.txt**<\/code>\u2014 Den h\u00e4r filen \u00e4r en readme-fil f\u00f6r WordPress-pluginf\u00f6rr\u00e5d, som kr\u00e4vs om du vill att blocket ska listas p\u00e5 pluginf\u00f6rr\u00e5det.<\/p>\n<\/li>\n<li>\n<p><code>**\/wholesome-plugin.php**<\/code>\u2014 Det h\u00e4r \u00e4r huvudladdningsfilen f\u00f6r pluginet. Dess namn sattes via &#8217;slug&#8217; som vi skrev in i det initiala installationsskriptet. Det k\u00f6ar alla JavaScript-tillg\u00e5ngar som beh\u00f6vs f\u00f6r plugin-programmet.<\/p>\n<\/li>\n<\/ul>\n<h3>Utforska byggkommandona<\/h3>\n<p>Innan vi kan k\u00f6ra v\u00e5ra byggkommandon m\u00e5ste vi se till att vi \u00e4r i plugin-mappen. I det h\u00e4r exemplet skulle vi k\u00f6ra <code>cd wholesome-plugin<\/code>i terminalen f\u00f6r att byta katalog till v\u00e5r plugin-mapp.<\/p>\n<p>Vi kan sedan k\u00f6ra f\u00f6ljande kommandon:<\/p>\n<ul>\n<li>\n<p><code>**npm start**<\/code>\u2014 Startar bygget f\u00f6r utveckling. Om du g\u00f6r en \u00e4ndring i plugin-programmet m\u00e5ste du g\u00f6ra detta f\u00f6r att \u00e4ndringarna ska visas (du kommer sannolikt att beh\u00f6va uppdatera din webbl\u00e4sare ocks\u00e5).<\/p>\n<\/li>\n<li>\n<p><code>**npm run build**<\/code>\u2014 Bygger koden f\u00f6r produktion. G\u00f6r detta om du skapar en releaseversion av plugin-programmet.<\/p>\n<\/li>\n<li>\n<p><code>**npm run format:js**<\/code>\u2014 Automatiskt formaterar JavaScript-filerna med hj\u00e4lp av b\u00e4sta praxis.<\/p>\n<\/li>\n<li>\n<p><code>**npm run lint:css**<\/code>\u2014 Lints (letar efter fel i) CSS-filer.<\/p>\n<\/li>\n<li>\n<p><code>**npm run lint:js**<\/code>\u2014 Lints (letar efter fel i) JavaScript-filer.<\/p>\n<\/li>\n<li>\n<p><code>**npm run packages-update**<\/code>\u2014 Uppdaterar WordPress-paket till den senaste versionen.<\/p>\n<\/li>\n<\/ul>\n<p>Vi kommer att anv\u00e4nda en eller flera av dessa n\u00e4r vi \u00e4ndrar insticksprogrammet.<\/p>\n<h2>\u00c4ndra plugin<\/h2>\n<p>L\u00e5t oss b\u00f6rja med att g\u00f6ra v\u00e5rt block redigerbart.<\/p>\n<h3>L\u00e4gg till attribut till<code>\/src\/index.js<\/code><\/h3>\n<p>\u00d6ppna upp <code>\/src\/index.js<\/code>i din editor och l\u00e4gg till f\u00f6ljande i <code>registerBlockType<\/code>funktionen, under <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>Detta kommer att ge oss en plats att lagra data i v\u00e5r plugin som kallas <code>blockText<\/code>tillg\u00e4nglig via <code>attributes<\/code>egendomen (prop). Observera att vi har gett den en standard f\u00f6r originaltexten som genereras av skapa plugin-skriptet.<\/p>\n<h3>L\u00e4gg till RichText till<code>\/src\/edit.js<\/code><\/h3>\n<p>\u00d6ppna upp <code>\/src\/edit.js<\/code>i din editor och ers\u00e4tt importen f\u00f6r <code>useBlockProps<\/code>med f\u00f6ljande:<\/p>\n<pre><code>import { RichText, useBlockProps } from '@wordpress\/block-editor';\n<\/code><\/pre>\n<p>Detta l\u00e5ter oss anv\u00e4nda RichText-komponenten i v\u00e5r redigeringsmetod.<\/p>\n<p>\u00c4ndra sedan hela redigeringsfunktionen till f\u00f6ljande:<\/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>Detta st\u00e4ller in v\u00e4rdet p\u00e5 <code>RichText<\/code>komponenten till att vara detsamma som det som lagras i <code>blockText<\/code>attributet, och <code>onChange<\/code>egenskapen st\u00e4ller in <code>blockText<\/code>attributet till vad som n\u00e5gonsin har skrivits in i <code>RichText<\/code>komponenten.<\/p>\n<h3>Mata in attributen<code>\/src\/save.js<\/code><\/h3>\n<p>\u00d6ppna upp <code>\/src\/save.js<\/code>i din editor och ers\u00e4tt <code>save<\/code>funktionen med f\u00f6ljande:<\/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>Detta matar helt enkelt ut v\u00e4rdet av <code>blockText<\/code>i stycket.<\/p>\n<h3>Kompilera plugin<\/h3>\n<p>\u00d6ppna terminalen, se till att du \u00e4r i rotkatalogen f\u00f6r ditt plugin och k\u00f6r f\u00f6ljande kommando:<\/p>\n<p>Skriptet kommer att kompileras. Om du har n\u00e5gra fel b\u00f6r terminalen g\u00f6ra dig medveten om vad de \u00e4r.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0df5e2a4.gif\" alt=\"Skapa ett plugin f\u00f6r WordPress Block Editor (Gutenberg)\" \/>Bygger plugin<\/p>\n<h3>S\u00e4tter in plugin<\/h3>\n<p>Se till att du har uppdaterat ditt inl\u00e4gg. Den tidigare versionen av blocket kan nu vara trasig, det h\u00e4r \u00e4r bra, ta bara bort det och s\u00e4tt in ett nytt.<\/p>\n<p>Infoga blocket med hj\u00e4lp av plustecknet uppe till v\u00e4nster i editorn, och n\u00e4r det \u00e4r infogat klicka p\u00e5 dess text. Du borde. nu kunna redigera texten.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0e151e82.gif\" alt=\"Skapa ett plugin f\u00f6r WordPress Block Editor (Gutenberg)\" \/>Infogar det redigerbara blocket<\/p>\n<h3>Visa plugin<\/h3>\n<p>Spara inl\u00e4gget och se det p\u00e5 framsidan av webbplatsen, texten du \u00e4ndrade ska visas ist\u00e4llet f\u00f6r originaltexten.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0e327430.png\" alt=\"Skapa ett plugin f\u00f6r WordPress Block Editor (Gutenberg)\" \/>Redigerbart block p\u00e5 webbsidans frontend<\/p>\n<p>Om du vill att dina block ska visas i en anpassad blockkategori, l\u00e4gg bara till f\u00f6ljande kod till roten av ditt plugin (i det h\u00e4r fallet <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>Detta kommer att registrera en anpassad blockkategori i din blockinfogare.<\/p>\n<p>Allt du beh\u00f6ver g\u00f6ra \u00e4r att justera <code>category<\/code>argumentet f\u00f6r <code>registerBlockType<\/code>funktionen <code>\/src\/index.js<\/code>f\u00f6r att referera till din blockkategori och kompilera om:<\/p>\n<pre><code>\ncategory: 'wholesome-blocks',\n<\/code><\/pre>\n<p>N\u00e4r du nu kommer att infoga ditt block hittar du det i din nyskapade blockkategori:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-168531-61e7d0e40fe2e.png\" alt=\"Skapa ett plugin f\u00f6r WordPress Block Editor (Gutenberg)\" \/>Custom Block Category i Block Inserter<\/p>\n<ul>\n<li>Ta en titt p\u00e5 <a href=\"https:\/\/wholesomecode.ltd\/guides\/php-render-block-wordpress-gutenberg\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">att anv\u00e4nda PHP f\u00f6r att rendera ditt block med dynamiska block<\/a><\/li>\n<li>Titta p\u00e5 <a href=\"https:\/\/wholesomecode.ltd\/guides\/post-meta-fields-store-attributes-wordpress-gutenberg\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">att anv\u00e4nda postmetaf\u00e4lt som attribut i ditt block<\/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\">L\u00e4gg till en blockad sidof\u00e4lt med InspectorControls<\/a><\/li>\n<li>Ut\u00f6ka ditt plugin genom <a href=\"https:\/\/wholesomecode.ltd\/guides\/entry-points-wordpress-create-block-script\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">att l\u00e4gga till ytterligare ing\u00e5ngspunkter till filen webpack.config<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/wholesomecode.ltd\" class=\"external external_icon\">wholesomecode.ltd<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Om du \u00e4r ny p\u00e5 WordPress Block Editor (Gutenberg) kanske du undrar hur du kommer ig\u00e5ng med att skapa ditt eget plugin. Som tur \u00e4r har WordPress-utvecklingsteamet en praktisk &#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":[942,848,901,755,807,818,724],"tags":[1173],"class_list":["post-228255","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gutenberg-9","category-handledningar","category-koda","category-oeppen-kaella","category-php-9","category-plugins-3","category-utvecklaren","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/228255","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/comments?post=228255"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/228255\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/223619"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=228255"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=228255"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=228255"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}