WordPress WXR-tiedostojen käsittely
WordPress-sivuston sisältöä voidaan siirtää sivustolta toiselle WXR-tiedoston avulla. WXR eli WordPress eXtended RSS on XML-pohjainen tiedostomuoto, jota WordPress käyttää sisältöjen vientiin ja tuontiin.
WXR-tiedosto on hyödyllinen erityisesti sisältömigraatioissa, mutta sitä ei pidä sekoittaa täydelliseen WordPress-varmuuskopioon. Se voi sisältää suuren määrän sivuston sisältöön liittyvää dataa, mutta ei sellaisenaan kata koko WordPress-asennusta.
Kun WXR-tiedostoja käsitellään ohjelmallisesti tai suurissa migraatioissa, tiedoston rakenne, merkkikoodaus, riippuvuudet ja tuontiprosessin hallinta kannattaa ottaa huomioon jo suunnitteluvaiheessa.
Mikä on WXR-tiedosto?
WXR on WordPressin oma XML-pohjainen vientiformaatti.
Sen avulla voidaan siirtää esimerkiksi:
- artikkeleita
- sivuja
- Custom Post Type -sisältöä
- kategorioita
- tägejä
- kommentteja
- kirjoittajia
- taksonomioita
- metatietoja
- mediaan liittyviä tietoja
WXR perustuu RSS/XML-rakenteeseen, mutta sisältää WordPressille tarkoitettuja lisätietoja.
Miten WXR-vienti toimii?
WordPressin hallintapaneelista voidaan muodostaa vientitiedosto, joka sisältää valitun sisällön.
Vienti voidaan rajata esimerkiksi:
- tiettyyn sisältötyyppiin
- tiettyyn kirjoittajaan
- tiettyyn päivämääräväliin
- tiettyyn kategoriaan
Tuloksena syntyy XML-tiedosto, joka voidaan myöhemmin tuoda toiseen WordPress-asennukseen.
WXR ei ole täydellinen varmuuskopio
Tämä ero on tärkeä ymmärtää.
WXR voi sisältää sivuston sisältöä, mutta se ei ole täydellinen kopio koko WordPress-järjestelmästä.
WXR ei korvaa esimerkiksi:
- tietokantavarmuuskopiota
- wp-content-hakemiston varmuuskopiota
- teemojen varmuuskopioita
- lisäosien varmuuskopioita
- palvelinkonfiguraation varmuuskopiota
Jos koko sivusto pitää pystyä palauttamaan vikatilanteessa, tarvitaan erillinen täydellinen varmuuskopio.
WXR-tiedoston rakenne
WXR on XML-tiedosto, joten sen sisällä on hierarkkinen rakenne.
Tiedosto sisältää muun muassa:
- RSS-rakenteen
- channel-elementin
- WordPressin namespace-määrityksiä
- item-elementtejä
- sisältöön liittyviä metatietoja
Yksittäinen sisältöobjekti sijaitsee yleensä omassa item-elementissään.
Item-elementti
WXR:n keskeinen rakennuspalikka on item.
Yksi item voi edustaa esimerkiksi:
- artikkelia
- sivua
- mediaobjektia
- kommenttia
- muuta tuotavaa sisältöä
Item sisältää tietoja, joiden avulla WordPress pystyy muodostamaan vastaavan objektin kohdejärjestelmään.
Post Type
WXR sisältää tietoa siitä, minkä tyyppisestä objektista on kyse.
Esimerkiksi:
postpageattachment- Custom Post Type
Tämä on tärkeää erityisesti silloin, kun WXR-tiedostoa käsitellään ohjelmallisesti.
Kohdejärjestelmässä vastaavan Custom Post Typen täytyy olla rekisteröitynä, jotta sisältö voidaan käsitellä oikein.
Taksomiat WXR-tiedostossa
Kategoriat ja tägit voidaan sisällyttää vientiin.
Mukana voi olla esimerkiksi:
- kategorian nimi
- slug
- kuvaus
- parent-suhde
- taksonomian tunniste
Hierarkkiset kategoriat vaativat erityistä huomiota, sillä vanhempi–lapsi-suhteet pitää säilyttää tuonnissa.
Metatiedot
WXR voi sisältää myös sisältöön liittyvää metadataa.
Sitä voidaan käyttää esimerkiksi:
- ulkoisiin tunnisteisiin
- mukautettuihin kenttiin
- SEO-tietoihin
- tuotetietoihin
- integraatioiden tunnisteisiin
Kaikkea metadataa ei kuitenkaan välttämättä kannata siirtää sellaisenaan uuteen järjestelmään.
Migraation yhteydessä kannattaa määrittää, mitkä metakentät ovat edelleen tarpeellisia.
Media ja liitteet
WXR voi sisältää mediaobjekteihin liittyvää tietoa, kuten tiedoston URL-osoitteen ja attachment-tietoja.
Varsinaisten tiedostojen siirtyminen riippuu tuontiprosessista ja käytettävästä menetelmästä.
Siksi media kannattaa tarkistaa erillisenä osana migraatiota.
Erityisesti suurissa sivustoissa kannattaa varmistaa:
- kuvat
- PDF-tiedostot
- videot
- liitetiedostot
- alt-tekstit
- kuvatekstit
WXR:n käsittely ohjelmallisesti
WXR-tiedostoa voidaan käsitellä ohjelmallisesti esimerkiksi PHP:llä tai muilla XML-yhteensopivilla työkaluilla.
Käyttötarkoituksia voivat olla:
- sisällön analysointi
- datan muuntaminen
- migraatio
- tietojen suodattaminen
- Custom Post Type -muunnokset
- vanhojen sisältöjen puhdistaminen
Ohjelmallisessa käsittelyssä XML:n rakennetta ei kannata olettaa täysin vapaasti, vaan WordPressin vientiformaatti kannattaa analysoida ennen muunnosten tekemistä.
Suuret WXR-tiedostot
Suuri WXR-tiedosto voi olla ongelmallinen, jos koko tiedosto yritetään ladata muistiin kerralla.
Ongelmaksi voivat muodostua:
- PHP:n muistiraja
- suoritusaikaraja
- palvelimen CPU-kuorma
- levytila
- tietokannan kuormitus
Suuri migraatio kannattaa mahdollisuuksien mukaan jakaa pienempiin kokonaisuuksiin.
WXR ja WP-CLI
WP-CLI soveltuu hyvin WordPress-sisällön käsittelyyn komentoriviltä.
Sillä voidaan automatisoida esimerkiksi:
- vienti
- tuonti
- migraatiot
- testipalautukset
- sisältöjen tarkistaminen
Komentorivipohjainen käsittely on usein luotettavampaa kuin suuren tiedoston käsitteleminen selaimen kautta.
WXR:n muokkaaminen
WXR-tiedostoa voidaan teoriassa muokata tekstieditorilla, koska kyseessä on XML-tiedosto.
Suurissa tai monimutkaisissa aineistoissa käsin muokkaamista ei kuitenkaan suositella.
Parempi vaihtoehto on käyttää:
- XML-parseria
- PHP-skriptiä
- erillistä migraatiotyökalua
- WP-CLI:tä
Näin XML-rakenne säilyy eheänä.
Merkkikoodaus
Suomenkielisessä sisällössä merkkikoodauksella on erityisen suuri merkitys.
WXR-tiedostoissa kannattaa tarkistaa:
- UTF-8
- ääkköset
- erikoismerkit
- HTML-entiteetit
- XML-escaping
Virheellinen merkkikoodaus voi johtaa siihen, että esimerkiksi ä, ö tai å muuttuu virheelliseksi tuonnin aikana.
Duplikaattien välttäminen
WXR-tuontia voidaan joutua suorittamaan useita kertoja.
Tällöin on tärkeää huomioida, miten WordPress tunnistaa jo tuodun sisällön.
Migraatiossa kannattaa säilyttää tarvittaessa:
- alkuperäinen ID
- GUID
- slug
- ulkoinen tunniste
- oma metatunniste
Näin epäonnistunut tuonti voidaan korjata ilman tarpeettomien duplikaattien syntymistä.
WXR ja URL-osoitteet
Sisältömigraatiossa URL-osoitteet ovat tärkeä osa kokonaisuutta.
Tuonnin jälkeen kannattaa tarkistaa:
- sisäiset linkit
- kuvalinkit
- kategoriat
- slugit
- vanhat URL-osoitteet
- uudelleenohjaukset
Sisällön onnistunut siirtäminen ei vielä tarkoita, että vanhat URL-osoitteet toimivat.
Turvallisuus
WXR-tiedosto voi sisältää paljon sivuston sisältöä ja mahdollisesti henkilötietoja.
Siksi:
- älä jätä WXR-tiedostoa julkisesti saataville
- säilytä vientitiedosto turvallisessa paikassa
- käytä suojattua tiedonsiirtoa
- rajoita tiedoston käyttöoikeuksia
- poista tarpeettomat vientitiedostot
- tarkista henkilötietojen käsittely
Vientitiedosto kannattaa käsitellä samalla huolellisuudella kuin muutkin sivuston varmuuskopio- ja migraatiotiedot.
WXR ja GDPR
Jos WXR sisältää käyttäjien tai kommentoijien tietoja, mukana voi olla henkilötietoja.
Ennen tiedoston jakamista tai siirtämistä kannattaa tarkistaa, sisältääkö se:
- nimiä
- sähköpostiosoitteita
- kommenttitietoja
- käyttäjätunnuksia
- muita henkilötietoja
Tarpeettomia henkilötietoja ei kannata siirtää uuteen ympäristöön.
Staging-ympäristössä testaaminen
WXR-tuonti kannattaa testata ensin staging-ympäristössä.
Testauksessa voidaan tarkistaa:
- sisältöjen määrä
- otsikot
- tekstisisällöt
- kuvat
- taksonomiat
- metatiedot
- kommentit
- URL-osoitteet
- Custom Post Typet
Samalla voidaan arvioida, kuinka kauan varsinainen tuotantotuonti kestää.
Yleisimmät virheet
WXR-tiedostojen käsittelyssä tehdään usein samoja virheitä.
Tyypillisiä ongelmia ovat:
- WXR:n käyttäminen täydellisenä varmuuskopiona
- liian suuren tiedoston tuonti kerralla
- median unohtaminen
- Custom Post Typen puuttuminen kohdesivustolta
- duplikaattien syntyminen
- URL-osoitteiden tarkistamatta jättäminen
- henkilötietojen tarpeeton siirtäminen
Huolellinen esivalmistelu tekee migraatiosta huomattavasti turvallisemman.
Parhaat käytännöt
WXR-tiedostojen käsittelyssä kannattaa:
- pidä alkuperäinen WXR-tiedosto tallessa
- testaa tuonti staging-ympäristössä
- varmista Custom Post Typet ja taksonomiat ennen tuontia
- tarkista median saatavuus
- käsittele suuret tiedostot hallituissa erissä
- tarkista merkkikoodaus
- estä duplikaattien syntyminen
- tarkista URL-osoitteet migraation jälkeen
- suojaa vientitiedostot
- ota erillinen täydellinen varmuuskopio ennen tuotantotuontia
Milloin WXR on hyvä valinta?
WXR sopii erityisesti tilanteisiin, joissa WordPress-sisältöä siirretään WordPressistä toiseen.
Hyviä käyttökohteita ovat:
- WordPress-migraatiot
- sivustojen yhdistäminen
- sisällön siirtäminen stagingiin
- sisältöjen arkistointi
- valikoidun sisällön siirtäminen
- vanhan WordPress-sivuston sisältöjen käsittely
Jos tarkoituksena on rakentaa jatkuva integraatio ulkoisen järjestelmän kanssa, REST API tai muu tarkoitukseen rakennettu tiedonsiirtoratkaisu voi olla parempi vaihtoehto.
Yhteenveto
WXR on WordPressin oma XML-pohjainen sisältöjen vientiformaatti, joka soveltuu erityisesti WordPress-sivustojen välisiin sisältömigraatioihin. Sen avulla voidaan siirtää artikkeleita, sivuja, taksonomioita, kommentteja, metadataa ja muita sisältöön liittyviä tietoja.
WXR ei kuitenkaan ole täydellinen varmuuskopio koko sivustosta. Suurissa migraatioissa on lisäksi huomioitava media, tietokannan suorituskyky, duplikaattien estäminen, URL-rakenteet ja henkilötietojen suojaaminen.
Kun WXR-tiedostot käsitellään hallitusti, testataan staging-ympäristössä ja yhdistetään tarvittaessa WP-CLI-pohjaiseen prosessiin, WordPress-sisällön siirtämisestä voidaan tehdä huomattavasti luotettavampaa ja ennakoitavampaa.