✅ WEB- ja WordPress -uutiset, -teemat, -laajennukset. Täällä jaamme vinkkejä ja parhaita verkkosivustoratkaisuja.

Kuinka hallita Gutenberg-lohkoja viesteissä WordPressissä: Poista lohkot ja estomallit käytöstä

11

WordPressin uusi editori Gutenberg antaa kirjoittajalle paljon joustavuutta monipuolisen sisällön luomiseen. Mutta joissakin tapauksissa saatat joutua rajoittamaan tätä hieman joko sivuston verkkovastaavana tai teeman kehittäjänä. Tässä viestissä tarkastelemme, kuinka voimme tarjota estorajoituksia Gutenbergissä PHP:n avulla.

Laitteessa on sisäänrakennetut toiminnot joidenkin rajoitusten asettamiseksi lohkoihin, joita monet eivät vielä tunne. Tämä voi olla hyödyllistä, kun tarvitset tiettyjä julkaisuja noudattamaan samaa ulkoasua tai sisältöä, tai jos haluat auttaa ei-teknisiä kirjoittajia olemaan hukkumatta Gutenbergin lohkojen määrästä. Toinen esimerkki sisältää tarvittavien mainoslohkojen lisäämisen automaattisesti (jos sinulla on Ad-laajennus) viestien tekstien väliin. Voit joko pakottaa tämän tai käyttää näitä tekniikoita auttaaksesi kirjoittajia muistamaan lisätä ne.

Tässä viestissä tarkastelemme kahta tapaa, joilla voit hallita lohkoja WordPress Gutenbergissä. Yksi tapa on rajoittaa, minkälaisia ​​lohkoja voidaan lisätä. Toisin sanoen poista tietyt estotyypit, joita et halua saatavan. Voimme tehdä tämän nimenomaan postityypin mukaan tai maailmanlaajuisesti. Toinen tapa on käyttää lohkomalleja. WordPress tarjoaa sinulle mahdollisuuden päättää ennalta määritettyjen lohkojen joukosta, kun luot uuden viestin. Tämä tehdään postaustyypin mukaan. Lohkopohjien avulla voit tarjota kirjoittajalle alkulohkoja, jotka auttavat häntä postauksen kirjoittamisessa, tai voit lukita lohkot paikoilleen, jotta kirjoittaja ei voi muuttaa asemaansa tai lisätä uusia.

Voit tehdä molemmat joko PHP:llä tai Javascriptillä. Tämä opas kattaa PHP-tavan.

Poista lohkotyypit

Musta lista

WordPressissä on PHP-suodatin nimeltä allowed_block_types. Tämä suodatin antaa sinulle kaksi parametria; joukko kaikista lohkoista ja post-objektista. Meidän tarvitsee vain hallita taulukkoa ennen sen palauttamista. Ja koska saamme myös post-objektin suodattimeen, voimme myös lisätä sääntöjä viestityypin tai muiden viestien metatietojen mukaan.

Lohkojen joukko koostuu lohkon nimiavaruusnimien merkkijonoista. Kaikki WordPressin lohkot vaativat etuliitteen nimitilan ennen lohkon nimeä. WordPress-ydinlohkoissa nimiavaruus on " core/" ja WordPressin upotuslohkoissa nimiavaruus on " core-embed/". Esimerkiksi otsikkolohkolla on core/headingtässä taulukossa nimi " ". Tein täydellisen yleiskatsauksen kaikista lohkotyyppien nimistä artikkelissani Miten käyttääksesi ja jäsentääksesi viestin lohkoja.

Tässä on nopea esimerkki suodattimen käytöstä kaikkien lohkojen paitsi kappaleen poistamiseen. Tämä koskee kaikkia viestityyppejä.

add_filter('allowed_block_types', function($block_types, $post) { return ['core/paragraph']; }, 10, 2);

Jos lisäät tämän koodin teemasi functions.phptai laajennustiedostoosi, Gutenberg kieltää kokonaan muut lohkot kuin kappaleen. Et edes näe muita lohkoja, etkä myöskään voi yrittää houkutella niitä ulos kirjoittamalla " /" viestiin (lohkon pikakuvake) tai etsimällä niitä.

Voimme määrittää lohkot, jotka haluamme säilyttää tai poistaa viestityypin mukaan. Tarkistamme yksinkertaisesti postiobjektin kiinteistön post_type. Alla olevassa koodiesimerkissä määritämme uuden joukon lohkoista, jotka haluamme sallia, ja lisäämme tämän säännön vain mukautetulle viestityypille ‘ book‘.

Yllä olevalla koodilla saat kaikki esteet, kun muokkaat viestejä ja sivuja, mutta kun muokkaat mukautettua viestityyppiä ‘ book‘, voit lisätä vain kappaleita, otsikoita ja yksittäisiä kuvia.

Käytä mielikuvitustasi lisätäksesi omia sääntöjäsi. Koska meillä on post-objekti, voimme käyttää suurinta osaa tarvitsemistamme tiedoista. Ehkä sinun on rajoitettava lohkovalinnat post-meta-arvolla? Esimerkiksi valitulla sivumallilla, valitulla viestikategorialla tai jollain muulla.

Valkoinen lista

Sikäli kuin näen, voit vain sallia (päättää mitkä poistetaan, sen sijaan että päättää kumpi pitää) lohkot poistamalla lohkojen rekisteröinti tietyssä vaiheessa. Ja sinun on tehtävä se Javascriptillä, ei PHP:llä.

En mene tämän yksityiskohtiin, mutta sinun on asetettava jonoon Javascript-tiedosto, joka on ladattu sisään inittai enqueue_block_editor_assetskoukku, riippuvuutena wp-dom-readyja wp-blocksriippuvuutena. Komentosarjan sisällä voit määrittää muuttujan niistä muuttujista, jotka haluat poistaa, noudattaen samoja nimiavaruuksien ja lohkonimien sääntöjä yllä. Ja jokaiselle lohkon nimelle kutsut funktion unregisterBlockType()paketista wp.blocks. Yleensä sinun on tehtävä tämä toiminnon sisällä wp.domReady()varmistaaksesi, että komentosarjan latausjärjestys on oikea.

Jotain tällaista:

var removeBlocks = [ 'core/paragraph', 'core/heading', 'core/image' ];   wp.domReady(function() { removeBlocks.forEach(function(blockName) { wp.blocks.unregisterBlockType(blockName); }); });

Lohkotyyppien poistaminen on yksi tapa hallita lohkoja Gutenbergissä. Katsotaanpa toista, ehkä hauskempaa tapaa ohjata lohkoja: lohkomalleja.

Estä mallit

Toinen tapa hallita Gutenberg-lohkoja WordPressissä on käyttää lohkomalleja. WordPressissä on toimintoja, joiden avulla voit täyttää uusia viestejä ennalta määritetyillä lohkoilla. Tästä voi olla hyötyä kirjoittajien auttamiseksi näyttämällä heille ehdotus lohkorakenteesta. Voit myös lukita nämä esitäytetyt lohkot, jolloin tekijät eivät voi järjestää uudelleen tai lisätä muita lohkoja. Tästä on hyötyä, kun haluat viesteillä olevan tietyn rakenteen ja ulkoasun – esimerkiksi varmistamalla, että kaikkien tämän tyyppisten viestien tiedot on rakennettu täsmälleen samalla tavalla.

Voimme lisätä lohkomalleja uudella parametrilla [register_post_type](https://developer.wordpress.org/reference/functions/register_post_type/)()toimintoon, jota käytetään mukautettujen viestityyppien rekisteröintiin (huom: uutta parametria ei ole vielä lisätty dokumentaatioon). Voit myös lisätä tai säätää parametreja olemassa oleville viestityypeille, kuten viesteille ja sivuille – katso alta miten.

Uusi parametri register_post_type()on ‘ template‘. Kohteen " " arvoksi templatesinun on annettava joukko lohkoja. Jokaisen lohkon tulee olla myös matriisi. Vähintään ensimmäinen taulukkoelementti on annettava; lohkon nimi (esim core/paragraph. ). Voit halutessasi lisätä toisen taulukkoelementin määritteille ja kolmannen taulukkoelementin sisäkkäisille lohkoille (esim. Cover, Columns lohkot). Se tulee selvemmäksi, kun näet koodin.

Aloitetaan yksinkertaisesta. Oletetaan, että meillä on register_post_type()funktiokutsu mukautetun viestityypin rekisteröimiseksi book. Haluamme esitäytä kaikki uudet tämäntyyppiset viestit kappalelohkolla, jossa on paikkamerkki, joka kertoo kirjoittajalle, mitä hänen tulee kirjoittaa.

Huomaa, että attribuuttitaulukko (jossa on paikkamerkki) on valinnainen. Nyt tällä "malli"-parametrilla aina kun luomme uusia viestejä, se luodaan kappalelohkolla, jossa on paikkamerkki "Kirjoita esittelysi tähän…".

Katsotaanpa monimutkaisempaa esimerkkiä: sisäkkäiset lohkot. Oletetaan, että haluamme lisätä kansilohkon, jonka sisällä on otsikkolohko, kappale ja painike kohdistettuna keskelle. Otsikossa ja kappaleessa on paikkamerkki:

Alla oleva kuva näyttää, mitä saamme, kun luomme uusia kirjapostauksia. Se näyttää vähemmän pelottavalta kuin tyhjä kangas, eikö?

Kuinka hallita Gutenberg-lohkoja viesteissä WordPressissä: Poista lohkot ja estomallit käytöstä

Muista, että attribuutit ovat erilaiset kussakin lohkotyypissä, ja ne voivat vaihdella myös asetuksissasi. Yllä olevassa koodiesimerkissä lisään kaksi attribuuttia Cover-lohkoon; lohko kohdistus "täysi leveyteen" ja peittoväri ennalta määritettyyn väriin mukautetusta väripaletista.

Lohkojen tasauksia "Wide Width" ja "Full Width" on tuettava erityisesti teemassasi. Minulla on viesti, joka selittää, kuinka voit lisätä teemaasi tukea lisälohkojen tasauksille, jos et ole perehtynyt tähän. Toiseksi teemani on tarjota mukautettu Gutenberg-väripaletti, jossa yksi paletin väreistä on nimeltään "sininen profiili". Tätä ei todennäköisesti ole koodissasi. Yllä oleva linkki selittää myös tämän, jos et tunne myös mukautettua Gutenberg-palettia.

Syy, miksi päätän antaa peittovärin määritteeksi, johtuu siitä, miten Cover-lohko toimii. Kun luot kansilohkon, se alkaa pyytämällä sinua valitsemaan taustakuvan asettamisen tai taustavärin. Kunnes kirjoittaja valitsee aktiivisesti yhden näistä, kansilohko piilottaa kaiken sisällön (lisämämme otsikon, kappaleen ja painikkeen)! Ne ilmestyvät yhtäkkiä esiin kuvan tai värin valinnan jälkeen. Siksi sekaannusten välttämiseksi olen esivalinnut taustavärin, jotta kirjoittaja näkee kaikki sisällä olevat lohkot heti. Väriä voi aina muuttaa Inspectorissa (sivupalkissa).

Lohkomallin lukitus

Mukana olevan lohkomallin avulla kirjoittaja voi järjestää uudelleen ja poistaa kaikki esitäytetyt lohkot sekä lisätä uusia lohkoja missä tahansa. Jos haluat välttää tämän, on toinen parametri register_post_type(): ‘ template_lock‘.

Parametri ‘ template_lockhyväksyy kaksi arvoa; ‘ all‘ tai ‘ insert‘.

Kohdan ‘ ‘ asettaminen template_lockarvoon ‘ all‘ estää kokonaan kirjoittajia järjestämästä uudelleen, poistamasta tai lisäämästä uusia lohkoja estomalliisi. He voivat muokata vain lohkomalliksi määriteltyjen lohkojen sisältöä ja asetuksia. Tämä on hyödyllistä tapauksissa, joissa haluat kaikkien viestityyppien koostuvan samoista lohkoista samassa järjestyksessä – ei enempää eikä vähempää.

Kun ‘ insert‘ käytetään ‘ template_lock‘:lle, kirjoittajat voivat järjestää lohkot uudelleen lohkomallissa. Kirjoittajat eivät kuitenkaan voi lisätä uusia lohkoja tai poistaa lohkoja.

Näin lukisit lohkomallin kokonaan mukautetulle viestityypille ‘ book‘:

Lukitun lohkomallin käyttäminen Gutenbergissä näyttää seuraavalta. Huomaa, että lohkojen uudelleenjärjestämisen toimintokuvakkeet puuttuvat sekä lohkolinkkien poistaminen valikosta. Missään ei myöskään ole toimintokuvakkeita uusien lohkojen lisäämiseksi (pieni "+").

Kuinka hallita Gutenberg-lohkoja viesteissä WordPressissä: Poista lohkot ja estomallit käytöstä

Lohkomallien säätäminen olemassa oleville viestityypeille

Jos haluat käyttää estomalleja viesteissä tai sivuilla, voit myös tehdä tämän. Kiinnitä toiminto initja käytä [get_post_type_object](https://developer.wordpress.org/reference/functions/get_post_type_object/)(). Anna parametriksi haluamasi viestityyppi (joko " post" tai). Tämä palauttaa objektin, jolle voit määrittää ominaisuudet " template" ja " template_lock".

Tämä on esimerkki saman lohkomallin ja lukitusominaisuuden lisäämisestä sivuille:

Johtopäätös

Tässä viestissä olemme oppineet lisäämään lohkojen hallintaa WordPress Gutenberg -editorissa. Tästä on monia etuja, erityisesti yhdessä mukautettujen viestityyppien kanssa, joiden on noudatettava tiettyä rakennetta. Yllä olevien tekniikoiden käyttäminen auttaa sinua virtaviivaistamaan prosessiasi sekä verkkovastaavana (auttaa ihmisiä kirjoittamaan parempia viestejä) että teeman kehittäjänä (varmistaa yhteisen suunnittelun). Lukitut lohkomallit voivat olla eri ratkaisu kuin mukautetut viestimallit ja viestien meta.

Lohkomallien mukauttaminen on tällä hetkellä Gutenbergin melko piilotettu ominaisuus. Mutta odotan sen muuttuvan, kun Gutenberg kehittyy ja saa tutumman paikan WordPressissä.

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. Hyväksyä Lisätietoja