Skip to content

Wszystko o WordPressie, tworzeniu stron — i nie tylko

🪓 Jak podzielić duże pliki XML przy imporcie do WordPress

🪓 Jak podzielić duże pliki XML przy imporcie do WordPress

Wyeksportowali Państwo stronę, a plik waży 30 megabajtów i nie wgrywa się na nowy hosting? Standardowy import WordPress po cichu urywa się w połowie i część treści po prostu przepada. Znajomy obrazek dla tych, którzy przenoszą się ze starej witryny z setkami wpisów.

Przyczyna: twarde limity hostingowe: upload_max_filesize (zazwyczaj 2-8 MB), post_max_size i timeout skryptu wynoszący 30 sekund. Plik WXR (WordPress eXtended RSS) z wieloletnią treścią z łatwością przekracza te granice.

Oto cztery działające sposoby na podzielenie dużego pliku XML na części i zaimportowanie wszystkiego bez strat. Od najprostszego do zaawansowanego.

💡 Szybki przegląd:

  • Proszę zwiększyć limit przesyłania przez dział wsparcia hostingu, to najszybsza droga, jeśli dostawca idzie Państwu na rękę.
  • Potrzebują Państwo narzędzia offline pod konkretny system operacyjny, proszę spróbować desktopowych WXR File Splitter (Windows) lub WXR Split (Mac).
  • Opcja wieloplatformowa bez instalacji, splitter online WXR dzieli plik bezpośrednio w przeglądarce.
  • Pracują Państwo z wierszem poleceń, WP-CLI wp import przyjmuje wiele plików i nie napotyka limitów webowych.

Dlaczego import się urywa: trzy limity, które przeszkadzają

WordPress podczas importu napotyka nie jeden, a od razu trzy ograniczenia.

  • upload_max_filesize, maksymalny rozmiar jednego przesyłanego pliku. Na tanim hostingu to 2 MB, na średnim, 8-32 MB.
  • post_max_size, całkowity rozmiar żądania POST. Musi być większy niż upload_max_filesize, inaczej plik nie dotrze do procesora.
  • max_execution_time, czas wykonania skryptu. Jeśli import trwa dłużej niż 30-60 sekund, proces jest przerywany, nawet jeśli plik został przesłany.

Eksport ze starej witryny, gdzie jest 500 wpisów i tysiące komentarzy, z łatwością daje XML o wielkości 15-25 MB. Taki plik nie mieści się w standardowym limicie.

Sposób 1: Poprosić hostingodawcę o zwiększenie limitów

Najprostsza droga, napisać do działu wsparcia hostingu. Większość dostawców zwiększa upload_max_filesize do 64-128 MB na życzenie, szczególnie na pakietach powyżej podstawowego.

Jeśli mają Państwo dostęp do ustawień serwera, proszę dodać w wp-config.php:

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

I proszę utworzyć plik .user.ini w katalogu głównym witryny (dla hostingów z PHP-FPM):

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

Na hostingach współdzielonych .user.ini nie zawsze działa, wtedy tylko przez zgłoszenie do działu wsparcia.

Po zmianie limitów proszę przesłać źródłowy plik WXR przez Narzędzia → Import → WordPress. Jeśli plik nadal nie przechodzi, proszę przejść do dzielenia.

Sposób 2: WXR File Splitter dla Windows

Dla Windows istnieje klasyczne narzędzie desktopowe WXR File Splitter. Jego interfejs jest ascetyczny, ale rozwiązuje zadanie: otwierają Państwo plik WXR, podają liczbę części lub maksymalny rozmiar każdej z nich, klikają „Split Files" i otrzymują kilka plików XML w tym samym folderze.

Okno WXR File Splitter z danymi pliku XML

Narzędzie pokazuje liczbę elementów w pliku przed podziałem: wpisów, stron, komentarzy. Pomaga to oszacować, na ile części dzielić.

Proszę zwrócić uwagę: narzędzie jest stare, oryginalna strona dewelopera już nie działa. Jeśli narzędzie nie uruchamia się na Windows 10/11, proszę od razu przejść do sposobu 4 (splitter online), jest on bardziej niezawodny.

Sposób 3: WXR Split dla Mac

Właściciele Maców mają dostępny odpowiednik, WXR Split. Logika jest ta sama: ładują Państwo XML, ustalają rozmiar części, otrzymują zestaw plików do sekwencyjnego importu.

Interfejs WXR Split z wyborem rozmiaru plików wyjściowych

Podobnie jak w przypadku wersji dla Windows, oficjalna strona narzędzia może być niedostępna. Proszę nie tracić czasu na szukanie, splitter webowy z następnego kroku działa na każdym systemie operacyjnym.

Sposób 4: Splitter online wxrfilesplitter.com

Najbardziej praktyczna opcja na dziś, bezpłatne narzędzie webowe WXR File Splitter. Działa w przeglądarce, nie wymaga instalacji, nie jest związane z systemem operacyjnym.

Jak podzielić plik:

  • Proszę otworzyć wxrfilesplitter.com.
  • Proszę załadować plik WXR, ograniczenie rozmiaru to 256 MB, co z zapasem wystarcza dla każdej witryny.
  • Proszę podać żądany rozmiar części, deweloper zaleca 2 MB dla stabilnego importu.
  • Proszę kliknąć Submit i pobrać archiwum z podzielonymi plikami XML.

Narzędzie nie przechowuje plików na serwerze, dane tymczasowe są czyszczone co godzinę. Po podziale proszę importować każdy plik przez standardowe Narzędzia → Import → WordPress jeden po drugim.

Główna zaleta: nie muszą Państwo szukać narzędzia pod swój system operacyjny ani rozgryzać wiersza poleceń. Wszystko w przeglądarce za pomocą kilku kliknięć.

Sposób 5: WP-CLI import (dla tych, którzy pracują przez konsolę)

Jeśli mają Państwo dostęp SSH do serwera i zainstalowane WP-CLI, import można wykonać bez żadnego dzielenia lub z podziałem dla szybkości.

WP-CLI przyjmuje od razu wiele plików:

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

Flaga --authors=create tworzy konta autorów, jeśli nie ma ich na nowej witrynie.

Ta metoda ma dwie zalety: po pierwsze, WP-CLI działa przez wiersz poleceń i nie jest ograniczone limitami webowymi PHP; po drugie, można przekazać katalog z podzielonymi częściami jednym poleceniem.

Aby włączyć szczegółowe logowanie podczas importu, proszę dodać w wp-config.php:

1define('IMPORT_DEBUG', true);

Wtedy WP-CLI wyświetli szczegółowy raport dla każdego przetworzonego elementu, widać, co zostało zaimportowane, a co pominięte.

⁉️🤔 Często zadawane pytania

Plik ma 40 MB, żaden sposób nie pomaga, co robić?

Najprawdopodobniej problem nie leży w rozmiarze, a w timeoucie. Nawet podzielony na części po 2 MB plik może się zawiesić, jeśli serwer nie radzi sobie z przetwarzaniem każdej części w 30 sekund. Proszę poprosić hostingodawcę o zwiększenie max_execution_time do 300. Albo proszę użyć WP-CLI, nie zależy ono od timeoutów webowych.

Czy można po prostu podzielić XML w edytorze tekstowym?

Technicznie tak, ale praktycznie nie. Plik WXR ma złożoną strukturę z przestrzeniami nazw i powtarzającymi się tagami <item>, z których każdy zawiera pełny wpis z metadanymi. Ręczne cięcie prawie na pewno uszkodzi XML, importer WordPress wyświetli błąd parsowania. Proszę korzystać ze specjalistycznych narzędzi.

Czy koniecznie trzeba dzielić plik, jeśli przenoszę się na normalny VPS?

Na VPS limity konfigurują Państwo sami, proszę zwiększyć upload_max_filesize i post_max_size do 128 MB, a plik prześle się w całości. Ale z timeoutem proszę uważać: nawet na mocnym serwerze import 500 wpisów z plikami multimedialnymi może zająć 2-3 minuty. Proszę zwiększyć max_execution_time lub jednak podzielić plik dla bezpieczeństwa.

Co robić, jeśli część treści nie zaimportowała się po podziale?

Proszę sprawdzić, czy zaimportowali Państwo WSZYSTKIE otrzymane pliki. Częsty błąd: pobrali Państwo archiwum z wxrfilesplitter.com, przesłali pierwszy plik i zatrzymali się. Każdy plik zawiera swoją porcję elementów, pominięcie jakiejkolwiek części oznacza utratę tych wpisów. Proszę importować sekwencyjnie, czekając na zakończenie każdego z nich.

A co z wtyczkami importu, na przykład WP All Import?

WP All Import potrafi czytać duże pliki XML i importować je częściami (chunking), ale jest wyspecjalizowane w imporcie danych do dowolnych typów wpisów i pól ACF, a NIE w imporcie standardowego WXR z wpisami/stronami/komentarzami takimi, jakie są. Do zadania „przenieść witrynę w całości" proszę użyć narzędzi opisanych powyżej.

Podsumowanie: czym podzielić XML pod Państwa zadanie

Nie ma uniwersalnego narzędzia, wybór zależy od tego, jaki dostęp mają Państwo do serwera i jak duży jest plik.

  • Jeśli mogą Państwo napisać do działu wsparcia hostingu, proszę zacząć od zwiększenia limitów. To 5 minut i często rozwiązuje problem bez żadnego dzielenia.
  • Plik do 256 MB, brak dostępu do konsoli, splitter webowy WXR rozwiąże zadanie w przeglądarce za pomocą kilku kliknięć.
  • Jest SSH i WP-CLI, wp import z katalogiem podzielonych plików, to najbardziej niezawodny i najszybszy sposób.
  • Oldskulowe narzędzia desktopowe (WXR File Splitter / WXR Split) proszę trzymać jako opcję zapasową, działają na starych systemach, ale strony deweloperów są już niedostępne.

Podzielili Państwo XML i pomyślnie zaimportowali witrynę? Proszę opowiedzieć w komentarzach, który sposób zadziałał u Państwa i czy spotkali się Państwo z tym, że część treści ginęła podczas importu.