{"id":233779,"date":"2023-02-22T17:06:00","date_gmt":"2023-02-22T14:06:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233779"},"modified":"2022-11-11T12:21:08","modified_gmt":"2022-11-11T09:21:08","slug":"saa-haer-kontrollerar-du-gutenberg-block-foer-inlaegg-i-wordpress-inaktivera-block-och-blockmallar","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/saa-haer-kontrollerar-du-gutenberg-block-foer-inlaegg-i-wordpress-inaktivera-block-och-blockmallar\/","title":{"rendered":"S\u00e5 h\u00e4r kontrollerar du Gutenberg-block f\u00f6r inl\u00e4gg i WordPress: Inaktivera block och blockmallar"},"content":{"rendered":"\n<p>WordPress nya redakt\u00f6r Gutenberg ger f\u00f6rfattaren stor flexibilitet att skapa rikt inneh\u00e5ll. Men i vissa fall kan du beh\u00f6va begr\u00e4nsa detta lite, antingen som webbansvarig f\u00f6r webbplatsen eller som temautvecklare. I det h\u00e4r inl\u00e4gget ska vi titta p\u00e5 hur vi kan tillhandah\u00e5lla blockbegr\u00e4nsningar i Gutenberg med PHP.<\/p>\n<p>Det finns inbyggd funktionalitet f\u00f6r att s\u00e4tta vissa begr\u00e4nsningar i block som m\u00e5nga inte \u00e4r bekanta med \u00e4nnu. Detta kan vara anv\u00e4ndbart n\u00e4r du beh\u00f6ver vissa inl\u00e4gg f\u00f6r att f\u00f6lja samma design eller inneh\u00e5ll, eller om du vill hj\u00e4lpa icke-tekniska f\u00f6rfattare att inte bli \u00f6verv\u00e4ldigade av antalet block i Gutenberg. Ett annat exempel inkluderar att automatiskt l\u00e4gga till n\u00f6dv\u00e4ndiga annonsblock (om du har ett annonsplugin) mellan texter i inl\u00e4gg. Du kan antingen tvinga fram detta eller anv\u00e4nda dessa tekniker f\u00f6r att hj\u00e4lpa f\u00f6rfattarna att komma ih\u00e5g att l\u00e4gga till dem.<\/p>\n<p>I det h\u00e4r inl\u00e4gget ska vi titta p\u00e5 tv\u00e5 s\u00e4tt du kan styra block i WordPress Gutenberg. Ett s\u00e4tt \u00e4r att begr\u00e4nsa vilken typ av block som kan l\u00e4ggas till. Ta med andra ord bort vissa blocktyper som du inte vill ha tillg\u00e4ngliga. Vi kan g\u00f6ra detta specifikt per posttyp eller globalt. Det andra s\u00e4ttet \u00e4r att anv\u00e4nda blockmallar. WordPress erbjuder dig att best\u00e4mma en upps\u00e4ttning f\u00f6rdefinierade block n\u00e4r du skapar ett nytt inl\u00e4gg. Detta g\u00f6rs per posttyp. Med blockmallar kan du erbjuda f\u00f6rfattaren de inledande blocken f\u00f6r att hj\u00e4lpa dem p\u00e5 v\u00e4gen att skriva inl\u00e4gget, eller s\u00e5 kan du l\u00e5sa blocken p\u00e5 plats s\u00e5 att f\u00f6rfattaren inte kan \u00e4ndra sin position eller l\u00e4gga till nya.<\/p>\n<p>Du kan g\u00f6ra b\u00e5da dessa med antingen PHP eller Javascript. Den h\u00e4r guiden kommer att t\u00e4cka PHP-s\u00e4ttet.<\/p>\n<h2>Ta bort blocktyper<\/h2>\n<h3>Svartlista<\/h3>\n<p>Det finns ett PHP-filter i WordPress som heter <code>allowed_block_types<\/code>. Detta filter ger dig tv\u00e5 parametrar; en upps\u00e4ttning av alla block och postobjektet. Allt vi beh\u00f6ver g\u00f6ra \u00e4r att hantera arrayen innan vi returnerar den. Och eftersom vi \u00e4ven f\u00e5r postobjektet i filtret kan vi \u00e4ven l\u00e4gga till regler efter inl\u00e4ggstyp eller annan postmetainformation.<\/p>\n<p>Arrayen av block best\u00e5r av str\u00e4ngar av blockets namnavgr\u00e4nsade namn. Alla block i WordPress kr\u00e4ver ett namnomr\u00e5de med prefix f\u00f6re blocknamnet. F\u00f6r WordPress-k\u00e4rnblock \u00e4r namnutrymmet &quot; <code>core\/<\/code>&quot; och f\u00f6r WordPress-inb\u00e4ddningsblock \u00e4r namnutrymmet &quot; <code>core-embed\/<\/code>&quot;. Till exempel har rubrikblocket namnet &quot; <code>core\/heading<\/code>&quot; i den h\u00e4r arrayen. Jag skapade en fullst\u00e4ndig \u00f6versikt \u00f6ver alla blocktypers namn i mitt inl\u00e4gg om <a href=\"https:\/\/awhitepixel.com\/blog\/wordpress-gutenberg-access-parse-blocks-with-php\/#block-names\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Hur f\u00f6r att komma \u00e5t och analysera ett inl\u00e4ggs block<\/a>.<\/p>\n<p>H\u00e4r \u00e4r ett snabbt exempel p\u00e5 hur du anv\u00e4nder filtret f\u00f6r att ta bort alla block utom stycket. Detta kommer att g\u00e4lla f\u00f6r alla inl\u00e4ggstyper.<\/p>\n<pre><code>add_filter('allowed_block_types', function($block_types, $post) {\n    return ['core\/paragraph'];\n}, 10, 2);<\/code><\/pre>\n<p>Om du l\u00e4gger till den h\u00e4r koden i ditt tema- <code>functions.php<\/code>eller plugin-fil, blir resultatet att Gutenberg helt f\u00f6rbjuder andra block \u00e4n stycke. Du kommer inte ens att kunna se n\u00e5gra andra block, inte heller kan du f\u00f6rs\u00f6ka locka ut dem genom att skriva &quot; <code>\/<\/code>&quot; i inl\u00e4gget (blockgenv\u00e4g) eller s\u00f6ka efter dem.<\/p>\n<\/p>\n<p>Vi kan definiera de block vi vill beh\u00e5lla eller ta bort per posttyp. Vi kontrollerar helt enkelt egenskapen <code>post_type<\/code>p\u00e5 postobjektet. I kodexemplet nedan definierar vi en ny array av blocken vi vill till\u00e5ta och l\u00e4gger till denna regel endast f\u00f6r den anpassade posttypen &#8217; <code>book<\/code>&#8217;.<\/p>\n<pre><code>add_filter('allowed_block_types', function($block_types, $post) {\n    $allowed = [\n        'core\/paragraph',\n        'core\/heading',\n        'core\/image'\n    ];\n    if ($post-&gt;post_type == 'book') {\n        return $allowed;\n    }\n    return $block_types;\n}, 10, 2);<\/code><\/pre>\n<p>Med ovanst\u00e5ende kod f\u00e5r du alla block n\u00e4r du redigerar inl\u00e4gg och sidor, men n\u00e4r du redigerar den anpassade inl\u00e4ggstypen &#8217; <code>book<\/code>&#8217; kan du bara l\u00e4gga till stycken, rubriker och enstaka bilder.<\/p>\n<p>Anv\u00e4nd din fantasi f\u00f6r att l\u00e4gga till dina egna regler. Eftersom vi har postobjektet kan vi komma \u00e5t det mesta av informationen vi skulle beh\u00f6va. Du kanske beh\u00f6ver begr\u00e4nsa blockvalen med ett postmetav\u00e4rde? Till exempel efter vald sidmall, vald inl\u00e4ggskategori eller n\u00e5got annat.<\/p>\n<h3>Vitlista<\/h3>\n<p>S\u00e5vitt jag kan se kan du bara vitlista (best\u00e4mma vilka som ska tas bort, i motsats till att best\u00e4mma vilka som ska beh\u00e5llas) block genom att avregistrera blocken vid en viss tidpunkt. Och du m\u00e5ste g\u00f6ra med det med Javascript och inte PHP.<\/p>\n<p>Jag kommer inte att g\u00e5 in p\u00e5 detaljer om detta, men du m\u00e5ste st\u00e4lla en Javascript-fil i k\u00f6 som laddas in <code>init<\/code>eller <code>enqueue_block_editor_assets<\/code>haka, med <code>wp-dom-ready<\/code>och <code>wp-blocks<\/code>som beroende. Inuti skriptet kan du st\u00e4lla in en variabel f\u00f6r den eller de du vill ta bort, enligt samma regler f\u00f6r namnrymder och blocknamn ovan. Och f\u00f6r varje blocknamn anropar du funktionen <code>unregisterBlockType()<\/code>fr\u00e5n <code>wp.blocks<\/code>paketet. Vanligtvis skulle du beh\u00f6va g\u00f6ra detta i en funktion p\u00e5 <code>wp.domReady()<\/code>f\u00f6r att s\u00e4kerst\u00e4lla att skriptets laddningsordning \u00e4r korrekt.<\/p>\n<p>N\u00e5got som det h\u00e4r:<\/p>\n<pre><code>var removeBlocks = [\n    'core\/paragraph',\n    'core\/heading',\n    'core\/image'\n];\n\u00a0\nwp.domReady(function() {\n    removeBlocks.forEach(function(blockName) {\n        wp.blocks.unregisterBlockType(blockName);\n    });\n});<\/code><\/pre>\n<p>Att ta bort blocktyper \u00e4r ett s\u00e4tt att kontrollera block i Gutenberg. L\u00e5t oss titta p\u00e5 det andra, kanske roligare s\u00e4ttet att styra block: blockmallar.<\/p>\n<h2>Blockera mallar<\/h2>\n<p>Ett annat s\u00e4tt att kontrollera Gutenberg-block i WordPress \u00e4r att anv\u00e4nda blockmallar. WordPress har funktionalitet som l\u00e5ter dig fylla i nya inl\u00e4gg med en upps\u00e4ttning f\u00f6rdefinierade block. Detta kan vara anv\u00e4ndbart f\u00f6r att hj\u00e4lpa f\u00f6rfattare genom att visa dem ett f\u00f6rslag p\u00e5 blockstruktur. Du kan ocks\u00e5 v\u00e4lja att l\u00e5sa dessa f\u00f6rifyllda block, s\u00e5 att f\u00f6rfattarna inte kan ordna om eller l\u00e4gga till andra block. Detta \u00e4r anv\u00e4ndbart n\u00e4r du vill att inl\u00e4gg ska ha en specifik struktur och design \u2013 till exempel se till att alla inl\u00e4gg av den inl\u00e4ggstypen har sin information strukturerad p\u00e5 exakt samma s\u00e4tt.<\/p>\n<p>Vi kan l\u00e4gga till blockmallar med en ny parameter till <code>[register_post_type](https:\/\/developer.wordpress.org\/reference\/functions\/register_post_type\/)()<\/code>funktionen som anv\u00e4nds f\u00f6r att registrera anpassade inl\u00e4ggstyper (obs: den nya parametern har \u00e4nnu inte lagts till i dokumentationen). Du kan ocks\u00e5 l\u00e4gga till eller justera parametrarna p\u00e5 befintliga inl\u00e4ggstyper som inl\u00e4gg och sidor \u2013 se nedan om hur.<\/p>\n<p>Den nya parametern till <code>register_post_type()<\/code>\u00e4r &#8217; <code>template<\/code>&#8217;. Som v\u00e4rde f\u00f6r &#8217; <code>template<\/code>&#8217; m\u00e5ste du tillhandah\u00e5lla en rad block. Varje block m\u00e5ste ocks\u00e5 vara en array. Som ett minimum m\u00e5ste du tillhandah\u00e5lla det f\u00f6rsta arrayelementet; blocknamnet (t.ex. <code>core\/paragraph<\/code>). Du kan valfritt l\u00e4gga till ett andra arrayelement f\u00f6r attribut och ett tredje arrayelement f\u00f6r kapslade block (t.ex. Cover, Columns-block). Det blir tydligare n\u00e4r du ser koden.<\/p>\n<p>L\u00e5t oss b\u00f6rja enkelt. Anta att vi har ett <code>register_post_type()<\/code>funktionsanrop f\u00f6r att registrera en anpassad posttyp &#8217; <code>book<\/code>&#8217;. Vi vill f\u00f6rfylla alla nya inl\u00e4gg av denna typ av inl\u00e4gg med ett styckeblock med en platsh\u00e5llare som talar om f\u00f6r f\u00f6rfattaren vad han eller hon ska skriva.<\/p>\n<pre><code>add_action('init', function() {\n    register_post_type('book', [\n        'label' =&gt; __('Books', 'txtdomain'),\n        'public' =&gt; true,\n        ...\n        'template' =&gt; [\n            ['core\/paragraph', ['placeholder' =&gt; __('Write your intro here...', 'txtdomain')]],\n        ],\n    ]);\n});<\/code><\/pre>\n<p>Observera att attributmatrisen (med &#8217;platsh\u00e5llare&#8217; i den) \u00e4r valfri. Nu, med denna &quot;mall&quot;-parameter n\u00e4r vi skapar nya inl\u00e4gg, kommer den att skapas med ett styckeblock som har platsh\u00e5llaren &quot;Skriv ditt intro h\u00e4r&#8230;&quot;.<\/p>\n<p>L\u00e5t oss titta p\u00e5 ett mer komplicerat exempel: kapslade block. S\u00e4g att vi vill l\u00e4gga till ett omslagsblock som har ett rubrikblock, stycke och en knapp inuti, mittjusterat. Titeln och stycket kommer att ha en platsh\u00e5llare:<\/p>\n<pre><code>'template' =&gt; [\n    ['core\/cover', ['align' =&gt; 'full', 'overlayColor' =&gt; 'blue-profile'], [\n        ['core\/heading', ['align' =&gt; 'center', 'placeholder' =&gt; __('Call to action title', 'txtdomain')]],\n        ['core\/paragraph', ['align' =&gt; 'center', 'placeholder' =&gt; __('Your text here', 'txtdomain')]],\n        ['core\/button', ['align' =&gt; 'center']]\n    ]],\n],<\/code><\/pre>\n<p>Bilden nedan visar vad vi kommer att f\u00e5 n\u00e4r vi skapar nya bokinl\u00e4gg. Det ser mindre skr\u00e4mmande ut \u00e4n en tom duk, eller hur?<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152040-61e4d330dc012.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152040-61e4d330dc012.png\" alt=\"S\u00e5 h\u00e4r kontrollerar du Gutenberg-block f\u00f6r inl\u00e4gg i WordPress: Inaktivera block och blockmallar\" ><\/a><\/p>\n<p>T\u00e4nk p\u00e5 att attributen \u00e4r olika f\u00f6r varje blocktyp och kan ocks\u00e5 skilja sig \u00e5t i din inst\u00e4llning. I kodexemplet ovan l\u00e4gger jag till tv\u00e5 attribut till Cover-blocket; blockjustering till &quot;Full Width&quot; och \u00f6verl\u00e4ggsf\u00e4rg till en f\u00f6rdefinierad f\u00e4rg fr\u00e5n en anpassad f\u00e4rgpalett.<\/p>\n<p>Blockjusteringarna &quot;Wide Width&quot; och &quot;Full Width&quot; m\u00e5ste st\u00f6djas specifikt i ditt tema. Jag har ett inl\u00e4gg som f\u00f6rklarar <a href=\"https:\/\/awhitepixel.com\/blog\/developer-guide-using-wordpress-gutenberg-for-creating-frontpages-and-landing-pages\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">hur du l\u00e4gger till st\u00f6d i ditt tema f\u00f6r ytterligare blockjusteringar<\/a> om du inte \u00e4r bekant med detta. F\u00f6r det andra \u00e4r mitt tema att tillhandah\u00e5lla en anpassad Gutenberg-f\u00e4rgpalett d\u00e4r en av palettf\u00e4rgerna heter &quot;bl\u00e5-profil&quot;. Detta kommer f\u00f6rmodligen inte att finnas i din kod. Ovanst\u00e5ende l\u00e4nk f\u00f6rklarar ocks\u00e5 detta om du inte \u00e4r bekant med anpassad Gutenberg-palett ocks\u00e5.<\/p>\n<p>Anledningen till att jag v\u00e4ljer att tillhandah\u00e5lla en \u00f6verlagringsf\u00e4rg som attribut \u00e4r p\u00e5 grund av hur Cover-blocket beter sig. N\u00e4r du skapar ett omslagsblock b\u00f6rjar det med att du uppmanas att v\u00e4lja mellan att st\u00e4lla in en bakgrundsbild eller v\u00e4lja en bakgrundsf\u00e4rg. Tills f\u00f6rfattaren aktivt v\u00e4ljer en av dessa, d\u00f6ljer omslagsblocket allt inneh\u00e5ll det har (rubriken, stycket och knappen vi lade till)! De kommer bara pl\u00f6tsligt att dyka upp efter att ha valt en bild eller f\u00e4rg. D\u00e4rf\u00f6r, f\u00f6r att undvika f\u00f6rvirring, har jag f\u00f6rvalt en bakgrundsf\u00e4rg s\u00e5 att f\u00f6rfattaren kan se alla block inuti direkt. F\u00e4rgen kan alltid \u00e4ndras i Inspekt\u00f6ren (sidof\u00e4ltet) \u00e4nd\u00e5.<\/p>\n<h3>L\u00e5sning av blockmallen<\/h3>\n<p>Med den medf\u00f6ljande blockmallen kan f\u00f6rfattaren ordna om och ta bort alla f\u00f6rifyllda block, samt l\u00e4gga till nya block var som helst. Om du vill undvika detta finns en annan parameter till <code>register_post_type()<\/code>: &#8217; <code>template_lock<\/code>&#8217;.<\/p>\n<p>Parametern &#8217; <code>template_lock<\/code>&#8217; accepterar tv\u00e5 v\u00e4rden; &#8217; <code>all<\/code>&#8217; eller &#8217; <code>insert<\/code>&#8217;.<\/p>\n<p>Om du st\u00e4ller in &#8217; <code>template_lock<\/code>&#8217; till &#8217; <code>all<\/code>&#8217; blockeras f\u00f6rfattarna helt fr\u00e5n att ordna om, ta bort eller l\u00e4gga till nya block i din blockmall. De kan bara redigera inneh\u00e5llet och inst\u00e4llningarna f\u00f6r de block som definieras som blockmall. Detta \u00e4r anv\u00e4ndbart i fall d\u00e4r du vill att alla inl\u00e4ggstyper ska best\u00e5 av samma block i samma ordning \u2013 varken mer eller mindre.<\/p>\n<p>Genom att anv\u00e4nda &#8217; <code>insert<\/code>&#8217; f\u00f6r &#8217; <code>template_lock<\/code>&#8217; kan f\u00f6rfattarna ordna om blocken i blockmallen. Men f\u00f6rfattarna kan fortfarande inte l\u00e4gga till nya block eller ta bort n\u00e5got av blocken.<\/p>\n<p>S\u00e5 h\u00e4r skulle du helt l\u00e5sa blockmallen f\u00f6r den anpassade inl\u00e4ggstypen &#8217; <code>book<\/code>&#8217;:<\/p>\n<pre><code>add_action('init', function() {\n    register_post_type('book', [\n        'label' =&gt; __('Books', 'txtdomain'),\n        'public' =&gt; true,\n        ...\n        'template' =&gt; [\n            ['core\/cover', ['align' =&gt; 'full', 'overlayColor' =&gt; 'blue-profile'], [\n                ['core\/heading', ['align' =&gt; 'center', 'placeholder' =&gt; __('Call to action title', 'txtdomain')]],\n                ['core\/paragraph', ['align' =&gt; 'center', 'placeholder' =&gt; __('Your text here', 'txtdomain')]],\n                ['core\/button', ['align' =&gt; 'center']]\n            ]],\n        ],\n        'template_lock' =&gt; 'all',\n    ]);\n});<\/code><\/pre>\n<p>Att anv\u00e4nda en l\u00e5st blockmall i Gutenberg kommer att se ut som nedan. L\u00e4gg m\u00e4rke till att \u00e5tg\u00e4rdsikonerna f\u00f6r att ordna om block saknas och att ta bort blockl\u00e4nkar i menyn saknas. Det finns heller inga \u00e5tg\u00e4rdsikoner f\u00f6r att l\u00e4gga till nya block (det lilla &quot;+&quot;) n\u00e5gonstans.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152040-61e4d33596f0b.gif\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152040-61e4d33596f0b.gif\" alt=\"S\u00e5 h\u00e4r kontrollerar du Gutenberg-block f\u00f6r inl\u00e4gg i WordPress: Inaktivera block och blockmallar\" ><\/a><\/p>\n<h3>Justera blockmallar f\u00f6r befintliga inl\u00e4ggstyper<\/h3>\n<p>Om du vill anv\u00e4nda blockmallar p\u00e5 inl\u00e4gg eller sidor kan du g\u00f6ra detta ocks\u00e5. Koppla in en funktion <code>init<\/code>och anv\u00e4nd <code>[get_post_type_object](https:\/\/developer.wordpress.org\/reference\/functions\/get_post_type_object\/)()<\/code>. Ange den inl\u00e4ggstyp du vill ha som parameter (antingen &#8217; <code>post<\/code>&#8217; eller &#8217; <code>page<\/code>&#8217;). Detta returnerar ett objekt som du kan tilldela egenskapen &#8217; <code>template<\/code>&#8217; och &#8217; <code>template_lock<\/code>&#8217; till.<\/p>\n<p>Det h\u00e4r \u00e4r ett exempel p\u00e5 att l\u00e4gga till samma blockmall och l\u00e5segenskap som ovan p\u00e5 sidor:<\/p>\n<pre><code>add_action('init', function() {\n    $page_post_type = get_post_type_object('page');\n    $page_post_type-&gt;template = [\n        ['core\/cover', ['align' =&gt; 'full', 'overlayColor' =&gt; 'blue-profile'], [\n            ['core\/heading', ['align' =&gt; 'center', 'placeholder' =&gt; __('Call to action title', 'txtdomain')]],\n            ['core\/paragraph', ['align' =&gt; 'center', 'placeholder' =&gt; __('Your text here', 'txtdomain')]],\n            ['core\/button', ['align' =&gt; 'center']]\n        ]],\n    ];\n    $page_post_type-&gt;template_lock = 'all';\n});<\/code><\/pre>\n<h2>Slutsats<\/h2>\n<p>I det h\u00e4r inl\u00e4gget har vi l\u00e4rt oss hur man uppn\u00e5r st\u00f6rre kontroll \u00f6ver block i WordPress Gutenberg editor. Det finns m\u00e5nga f\u00f6rdelar med att g\u00f6ra detta, s\u00e4rskilt i kombination med anpassade inl\u00e4ggstyper som m\u00e5ste f\u00f6lja en specifik struktur. Att anv\u00e4nda teknikerna ovan hj\u00e4lper dig att effektivisera din process mer, b\u00e5de som webbansvarig (hj\u00e4lper m\u00e4nniskor att skriva b\u00e4ttre inl\u00e4gg) och som temautvecklare (s\u00e4kerst\u00e4ller gemensam design). L\u00e5sta blockmallar kan vara en annan l\u00f6sning \u00e4n anpassade inl\u00e4ggsmallar och inl\u00e4ggsmeta.<\/p>\n<p>Att anpassa blockmallar \u00e4r fortfarande en ganska dold funktion i Gutenberg f\u00f6r tillf\u00e4llet. Men jag f\u00f6rv\u00e4ntar mig att det kommer att f\u00f6r\u00e4ndras n\u00e4r Gutenberg utvecklas och f\u00e5r en mer bekant plats inom WordPress.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>F\u00f6rklarar hur man inaktiverar specifika block i WordPress Gutenberg, och hur man l\u00e4gger till och definierar blockmallar f\u00f6r inl\u00e4ggstyper. Allt i PHP.<\/p>\n","protected":false},"author":1,"featured_media":224326,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[724,838,942,942,848,901,922,1110,922,818,818,838,848,724,868,868],"tags":[1173],"class_list":{"0":"post-233779","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-utvecklaren","8":"category-guide-foer-nyboerjare","9":"category-gutenberg-9","11":"category-handledningar","12":"category-koda","13":"category-oevrig","14":"category-n-a","16":"category-plugins-3","21":"category-wordpress-9","23":"tag-affiai-sv"},"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/233779","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=233779"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/233779\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/224326"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=233779"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=233779"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=233779"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}