Skip to content

Kaikki WordPressistä, web-kehityksestä — ja paljon muuta

🪓 Kuinka jakaa suuria XML-tiedostoja WordPressiin tuotaessa

🪓 Kuinka jakaa suuria XML-tiedostoja WordPressiin tuotaessa

Veit sivustosi ulos, mutta tiedosto painaa 30 megatavua eikä mahdu uudelle palvelimelle? Tavallinen WordPress-tuonti pysähtyy puolivälissä hiljaa, ja osa sisällöstä yksinkertaisesti katoaa. Tutun kuuloinen tilanne kaikille, jotka siirtävät vanhaa sivustoa, jossa on satoja kirjoituksia.

Syynä ovat tiukat palvelinrajoitukset: upload_max_filesize (yleensä 2-8 Mt), post_max_size ja 30 sekunnin komentosarjan aikakatkaisu. Vuosien sisältöä sisältävä WXR-tiedosto (WordPress eXtended RSS) ylittää nämä rajat helposti.

Tässä on neljä toimivaa tapaa pilkkoa suuri XML osiin ja tuoda kaikki sisältö ilman tietojen menetystä. Yksinkertaisimmasta edistyneimpään.

💡 Pikaopas:

  • Nosta latausrajaa palveluntarjoajan tuen kautta: tämä on nopein reitti, jos palveluntarjoajasi suostuu yhteistyöhön.
  • Tarvitsetko työpöytätyökalun tietylle käyttöjärjestelmälle? Kokeile WXR File Splitteriä (Windows) tai WXR Splitiä (Mac).
  • Alustariippumaton vaihtoehto ilman asennusta: selainpohjainen WXR-pilkkoja jakaa tiedoston suoraan selaimessasi.
  • Työskenteletkö komentorivillä? WP-CLI wp import hyväksyy useita tiedostoja, eivätkä verkkorajoitukset koske sitä.

Miksi tuonti epäonnistuu: kolme rajoitusta, jotka tulevat tielle

WordPress-tuonti törmää ei yhteen vaan kolmeen esteeseen samanaikaisesti.

  • upload_max_filesize: yksittäisen ladattavan tiedoston enimmäiskoko. Halvalla palvelimella tämä on 2 Mt; keskitason palvelimella 8-32 Mt.
  • post_max_size: POST-pyynnön kokonaiskoko. Sen on oltava suurempi kuin upload_max_filesize, muuten tiedosto ei pääse käsittelijälle asti.
  • max_execution_time: komentosarjan suoritusaika. Jos tuonti kestää yli 30-60 sekuntia, prosessi päättyy, vaikka tiedosto latautui onnistuneesti.

Vanhan sivuston vienti, jossa on 500 kirjoitusta ja tuhansia kommentteja, tuottaa helposti 15-25 Mt:n XML-tiedoston. Tällainen tiedosto ei mahdu standardirajojen sisään.

Tapa 1: Pyydä palveluntarjoajaasi nostamaan rajoja

Yksinkertaisin reitti on ottaa yhteyttä palveluntarjoajan tukeen. Useimmat nostavat upload_max_filesize-arvon 64-128 Mt:uun pyynnöstä, erityisesti perustasoa korkeammilla paketeilla.

Jos sinulla on itse pääsy palvelimen asetuksiin, lisää tämä tiedostoon wp-config.php:

1define('WP_MEMORY_LIMIT', '256M');

Ja luo .user.ini-tiedosto sivuston juureen (palvelimille, jotka käyttävät PHP-FPM:ää):

1upload_max_filesize = 128M
2post_max_size = 128M
3max_execution_time = 300

Jaetulla palvelimella .user.ini ei aina toimi; siinä tapauksessa sinun on lähetettävä tukipyyntö.

Kun olet muuttanut rajoja, lataa alkuperäinen WXR-tiedosto kohdasta Työkalut → Tuo → WordPress. Jos tiedosto ei vieläkään mene läpi, siirry pilkkomiseen.

Tapa 2: WXR File Splitter Windowsille

Windowsille on olemassa klassinen työpöytätyökalu nimeltä WXR File Splitter. Käyttöliittymä on minimalistinen, mutta se hoitaa homman: avaa WXR-tiedosto, määritä osien määrä tai kunkin enimmäiskoko, napsauta "Split Files", ja saat useita XML-tiedostoja samaan kansioon.

WXR File Splitter -ikkuna, jossa näkyy XML-tiedoston tietoja

Työkalu näyttää tiedoston elementtien määrän ennen pilkkomista: kirjoitukset, sivut, kommentit. Tämä auttaa arvioimaan, kuinka monta osaa kannattaa luoda.

Huomio: työkalu on vanha, eikä alkuperäisen kehittäjän sivusto enää toimi. Jos apuohjelma ei käynnisty Windows 10/11:ssä, siirry suoraan tapaan 4 (selainpilkkoja); se on luotettavampi.

Tapa 3: WXR Split Macille

Mac-käyttäjille on vastaava työkalu nimeltä WXR Split. Logiikka on sama: lataa XML, aseta osan koko, saat joukon tiedostoja peräkkäistä tuontia varten.

WXR Split -käyttöliittymä, jossa tulostiedoston koon valinta

Kuten Windows-versiossa, tämänkin työkalun virallinen sivusto saattaa olla poissa käytöstä. Älä tuhlaa aikaa etsimiseen; seuraavan vaiheen verkkopilkkoja toimii millä tahansa käyttöjärjestelmällä.

Tapa 4: Selainpohjainen pilkkoja wxrfilesplitter.com

Käytännöllisin vaihtoehto tänä päivänä on ilmainen verkkotyökalu WXR File Splitter. Se toimii selaimessa, ei vaadi asennusta eikä ole sidottu mihinkään käyttöjärjestelmään.

Näin pilkot tiedoston:

  • Avaa wxrfilesplitter.com.
  • Lataa WXR-tiedostosi. Kokoraja on 256 Mt, mikä on enemmän kuin tarpeeksi mille tahansa sivustolle.
  • Määritä haluttu osan koko; kehittäjä suosittelee 2 Mt:uun vakaata tuontia varten.
  • Napsauta Submit ja lataa arkisto, joka sisältää pilkotut XML-tiedostot.

Työkalu ei tallenna tiedostoja palvelimelle; väliaikaiset tiedot tyhjennetään tunnin välein. Pilkkomisen jälkeen tuo jokainen tiedosto yksitellen tavallisen Työkalut → Tuo → WordPress -reitin kautta.

Tärkein etu: sinun ei tarvitse etsiä työkalua käyttöjärjestelmällesi tai opetella komentoriviä. Kaikki tapahtuu selaimessa parilla napsautuksella.

Tapa 5: WP-CLI-tuonti (niille, jotka työskentelevät konsolin kautta)

Jos sinulla on SSH-yhteys palvelimelle ja WP-CLI on asennettu, voit tuoda ilman pilkkomista tai pilkkoa nopeuden vuoksi.

WP-CLI hyväksyy useita tiedostoja kerralla:

1wp import file1.xml file2.xml file3.xml --authors=create

--authors=create-lippu luo kirjoittajatilit, jos niitä ei ole uudella sivustolla.

Tällä menetelmällä on kaksi etua: ensinnäkin WP-CLI toimii komentorivin kautta, eivätkä PHP:n verkkorajat sido sitä; toiseksi voit antaa sille hakemiston, jossa on pilkotut osat, yhdellä komennolla.

Ota käyttöön yksityiskohtainen lokitus tuonnin aikana lisäämällä tämä tiedostoon wp-config.php:

1define('IMPORT_DEBUG', true);

Tämän jälkeen WP-CLI tulostaa yksityiskohtaisen raportin jokaisesta käsitellystä elementistä ja näyttää, mikä tuotiin ja mikä ohitettiin.

⁉️🤔 Usein kysytyt kysymykset

Tiedosto on 40 Mt, eikä mikään menetelmä auta. Mitä teen?

Ongelma ei todennäköisesti ole koko vaan aikakatkaisu. Jopa 2 Mt:n osiin pilkottu tiedosto voi jumittua, jos palvelin ei pysty käsittelemään kutakin osaa 30 sekunnissa. Pyydä palveluntarjoajaasi nostamaan max_execution_time arvoon 300. Tai käytä WP-CLI:tä, joka ei ole riippuvainen verkon aikakatkaisuista.

Voinko vain pilkkoa XML:n tekstieditorissa?

Teknisesti kyllä, mutta käytännössä en. WXR-tiedostolla on monimutkainen rakenne, jossa on nimiavaruuksia ja toistuvia <item>-tageja, joista jokainen sisältää kokonaisen kirjoituksen metatietoineen. Manuaalinen leikkaaminen rikkoo XML:n lähes varmasti, ja WordPress-tuoja antaa jäsennysvirheen. Käytä erikoistyökaluja.

Tarvitseeko tiedosto pilkkoa, jos siirryn kunnon VPS:lle?

VPS:llä hallitset rajoja itse; nosta upload_max_filesize ja post_max_size 128 Mt:uun, niin tiedosto latautuu kokonaisena. Mutta ole varovainen aikakatkaisujen kanssa: jopa tehokkaalla palvelimella 500 kirjoituksen tuominen mediatiedostoineen voi kestää 2-3 minuuttia. Nosta max_execution_time-arvoa tai pilko tiedosto varmuuden vuoksi.

Entä jos osa sisällöstä ei tuotu pilkkomisen jälkeen?

Tarkista, että toit KAIKKI tuloksena saadut tiedostot. Yleinen virhe: latasit arkiston wxrfilesplitter.com-sivustolta, toit ensimmäisen tiedoston ja lopetit. Jokainen tiedosto sisältää oman osuutensa elementeistä; minkä tahansa osan ohittaminen tarkoittaa kyseisten tietueiden menettämistä. Tuo peräkkäin ja odota, että jokainen valmistuu.

Entä tuontilisäosat, kuten WP All Import?

WP All Import osaa lukea suuria XML-tiedostoja ja tuoda ne paloina, mutta se on suunniteltu tietojen tuomiseen mukautettuihin sisältötyyppeihin ja ACF-kenttiin, EI tavallisen WXR:n tuomiseen kirjoituksineen/sivuineen/kommentteineen sellaisenaan. Koko sivuston siirtotehtävään käytä yllä kuvattuja työkaluja.

Yhteenveto: mitä työkalua käyttää mihinkin tehtävään

Yleispätevää työkalua ei ole; valinta riippuu siitä, millainen palvelinyhteys sinulla on ja kuinka suuri tiedosto on.

  • Jos voit ottaa yhteyttä palveluntarjoajan tukeen, aloita nostamalla rajoja. Se vie 5 minuuttia ja usein ratkaisee ongelman ilman pilkkomista.
  • Tiedosto enintään 256 Mt ilman konsoliyhteyttä: WXR-verkkopilkkoja hoitaa tehtävän selaimessasi parilla napsautuksella.
  • Onko SSH ja WP-CLI? wp import pilkottujen tiedostojen hakemistolla on luotettavin ja nopein menetelmä.
  • Pidä vanhan koulukunnan työpöytätyökalut (WXR File Splitter / WXR Split) varavaihtoehtona; ne toimivat vanhemmissa järjestelmissä, mutta kehittäjien sivustot eivät ole enää saatavilla.

Pilkoitko XML:si ja toit sivuston onnistuneesti? Jaa kommenteissa, mikä menetelmä toimi sinulle ja kohtasitko sisällön katoamista tuonnin aikana.