W związku z zainteresowaniem przeprowadzką tego typu, postanowiłem, że opiszę dla potomności, co i jak.
Ten wpis to w 99,99% 75% wpis Krzysztofa Jurewicza z modyfikacjami. Pozwoliłem sobie pliki, które podlinkował we wpisie i podczas rozmowy ze mną, wrzucić na własny serwer, by w razie czego ich nie zgubić.
Szablon do eksportu
Bez “specjalistycznego” szablonu “komentarzy” (winno się nazywać: wpisów), nie zrobimy nic. Tak, wiem, zrobiłem literówkę w nazwie pliku. Nieważne. Format czasu to musi być H:i:s, a daty Y-m-d, gdyż w przeciwnym wypadku WordPress nie zrozumie dat ani czasu.
Pobieranie wpisów i komentarzy
Najprostszy krok. Otwieramy terminal, tworzymy katalog, przechodzimy do niego (zrobi się niezły śmietnik, po to nowy katalog) i wywołujemy wget -w 2 -r -nd http://adres-bloga.
Usuwanie zbędnych plików
Usuń wszelkie obrazki, favikonki, robots.txt i inne, które wiesz, że nie są wpisami z komentarzami.
Następnie, w terminalu, uruchom grep -i html\ xmlns ./*, otwórz edytor tekstu i wklej tam wynik. Wykonaj grep -i \?xml ./* i jeżeli cokolwiek więcej pojawiło się w terminalu, skopiuj.
W edytorze tekstu przechodź za ./nazwa_pliku
i przed dwukropkiem naciskaj Shift + End i nie puszczając Shifta, Shift + Delete. Powtórz przed każdym dwukropkiem, by w każdej linii usunąć cytat i dwukropek.
Zamień \n./
na
(spację). Jeżeli Twój edytor nie rozumie \n
(znaku nowej linii), musisz ręcznie pousuwać ./
i połączyć wszystkie linie w jedną. Na początku wielkiej linii zamień ./
na rm, skopiuj całość i wykonaj w terminalu.
Podmiana wtyczki
WordPress od kilku wersji importuje wpisy z WXR w inny sposób, m.in. wymagając nagłówka XML. Podmieńmy więc /wp-admin/import/wordpress.php (tworząc uprzednio kopię zapasową).
Połącz eksport w jeden plik
Po prostu wykonaj w terminalu komendę cat * > jogger.xml.
Delikatnie zmodyfikuj plik
Wykonaj w terminalu:
sed -i s^"<podpis><a href=\"\(.*\)\">\(.*\)<\/a><\/podpis>"^"<wp:comment_author>\2<\/wp:comment_author>\n\t\t<wp:comment_author_url>\1<\/wp:comment_author_url>"^ jogger.xml
sed -i s^"<podpis>\(.*\)<\/podpis>"^"<wp:comment_author>\1<\/wp:comment_author>"^ jogger.xml
Import
W dashboardzie WordPressa zwyczajnie dogrzeb się do importu i zaimportuj plik jogger.xml.
Możliwe kłopoty
Bardzo prawdopodobne jest, że napotkasz dwa problemy.
- Twoje komentarze nie wyróżniają się spośród komentarzy gości, choć powinny. Tutaj pewno pomogłaby zabawa z phpMyAdmin (kwerendy/zapytania SQL).
- Komentarze gości mogą nie mieć klikalnych nicków ze względu na kłopoty z rel=”nofollow” / niepoprawnym domknięciem href=”". Rozwiązanie zdaje się być ponownie… Ręczne. Edycja każdego komentarza z problemem. Mogłaby ponownie pomóc zabawa w pMA, niestety, ja nie potrafię napisać kwerendy/zapytania
.
Z góry przestrzegam, by nie kasować wpisów w pMA, bo zostaną w bazie komentarze nieprzypisane do wpisów.
Wpis publikuję głównie z powodu ^lukema, ale w sumie 1% przemawia za publikowaniem go z powodu niemiłych doświadczeń i głupich komend wykonanych na pliku jogger.xml
.