Yksi yleisimmistä ongelmista teeman tai laajennuksen päivittämisessä Gutenberg-lohkoilla on, että lohkokoodin muuttaminen rikkoo kaikki olemassa olevat viestit, jotka käyttävät kyseistä lohkoa. Onneksi WordPress tarjoaa ratkaisun; tapa poistaa lohkot käytöstä. Tässä viestissä katsomme, kuinka tämä tehdään.
Jos olet työskennellyt lohkojen kehittämisen parissa ennen kuin olet luultavasti perehtynyt tähän lohkovirheeseen, kun olet lisännyt lohkon ja myöhemmin muuttanut save
toimintoa.
Tämä johtuu siitä, että WordPress vertaa tietokantaan tallennettua lohkoa lohkosi save
funktion nykyiseen koodiin, eivätkä ne täsmää. WordPress ei pysty korjaamaan eroa. Useimmissa tapauksissa voit klikata lohkon kolmea pistettä ja valita "Yritä lohkopalautus". Jos save
funktioon tehdyt muutokset olivat pieniä (esim. luokkamuutos), WordPress pystyy palauttamaan lohkon. Pahimmassa tapauksessa d sinun on napsautettava "Muunna HTML:ksi" ja menetät lohkosi edit
toiminnallisuuden. Emme tietenkään voi odottaa, että estokoodimme käyttäjät löytävät manuaalisesti kaikki viestit käyttämällä tätä lohkoa ja suorittavat nämä vaiheet jokaiselle.
Joten ennen kuin teemme päivityksiä save
toimintoon, lisäämme koodin kertomaan WordPressille, kuinka vanhalla save
toiminnolla tallennettua vanhaa sisältöä käsitellään.
Mennään koodiin!
Se on itse asiassa aika yksinkertaista. Lyhyesti sanottuna meidän on tehtävä; lisää deprecated
ominaisuus registerBlockType()
funktiokutsuun. Tämä ominaisuus odottaa joukkoa. Tämä tarkoittaa, että voit poistaa lohkon käytöstä useita kertoja antamalla useita merkintöjä taulukkoon. Jokainen poisto määritellään objektiksi, jolla on täydellinen attributes
ominaisuus ja (vanha) save
toiminto.
Toisin sanoen määrität deprecated
ominaisuuden taulukoksi ja kopioit sitten lohkosi attributes
ja save
funktiosi siihen. Sinun on sisällytettävä attribuutit, vaikka et muuta niissä mitään päivityksessä. Toimintoa ei tarvitse sisällyttää edit
poistoihin.
Katsotaanpa tätä käytännön esimerkissä.
Oletetaan, että estokoodimme näyttää tältä. Toiminto edit
on jätetty pois, koska meidän ei tarvitse käsitellä sitä poistoissa.
Oletetaan sitten, että haluamme tehdä muutoksia molempiin määritteisiin ja tallentaa ja välttää olemassa olevien lohkojen rikkomista. Lisäämme deprecated
ominaisuuden ja kopioimme siihen koko attributes
ja save
taulukkoelementtinä. Sitten voimme vapaasti tehdä muutoksia attributes
tai/tai save
toimintoihin.
Kun tämä koodi on käännetty, voit etsiä olemassa olevan viestin vanhalla estokoodilla, eikä sinun pitäisi saada rikkinäistä koodia!
WordPress selvittää, että lohko käyttää vanhentunutta koodiamme, ja lataa sisällön käyttämällä vanhentunutta save
koodia. Kun teet muutoksia lohkoon ja päivität viestin, lohko tallennetaan käyttämällä uutta save
toimintoa.
Edistyneempi poisto ja lisälukeminen
Yllä oleva koodiesimerkki on poistojen yksinkertaisin muoto. WordPress tukee enemmän toimintoja, kuten sisällyttämistä migrate
ja supports
jopa vakioiden (ajattele versionumeroiden) määrittämistä vanhentuneelle koodillesi. Tutustu WordPressin dokumentaatioon lohkopoistoista.