14. duben 2013
Jak převést rozsáhlý blog z Blogger na Wordpress
V předchozím článku o převodu blogu z Bloggeru do Wordpressu, jsem popsal postup, který funguje. Ovšem pro menší blogy. Jakmile přetahujete obravdu rozsáhlý blog. Řádově stovky příspěvků a tisíce komentářů, narazíte na mnohem větší problémy. Importní nástroj začne házet timeouty, které nejde obejít. Data překračují velikost nastavené paměti. Script pro práci s daty končí na Timeout nebo Gateway error. Zkrátka tady už se na to musí jinak.
V tomto případě pomůže jen jediný způsob. Export dat z bloggeru, konverze do importního formátu pro Wordpress a výsledné drobné doladění. Až na to, že takhle jednoduché to zase není.
Krok 1 - export dat z Bloggeru
Pro export dat musíte mít v Bloggeru oprávnění admin. Pak stačí v Nastavení vybrat Jiné
A dále pak vybrat Export blogu
Krok 2 - konverze Blogger XML do Wordpres WRX formátu
Tak tady začíná ta pravá zábava. Normálně byste použili http://blogger2wordpress.appspot.com/ a soubor převedli. No jo, jenže on je tam limit 1 MB na soubor. A to pro větší blogy přesáhnete vždy.
Takže vás čeká jinačí zábavička, stáhnout si z Google code konvertor, kterým to převedete pěkně na svém počítači. Ovšem nečekejte nějakou user friendly applikaci. Scripty jsou v Pythonu a v readme spousta důležitých věcí chybí.
Čeká vás:
- Instalace Python
- Konfigurace cest, pokud používáte Windows (s Unixem vám zde neporadím)
- Linkování pomocnkých knihoven do Pythona
- Převod souboru.
A to ještě výsledný soubor má špatně udělaný formát kategorií (labels v Bloggeru) a špatně převedený read more.
Krok 2.1 Stažení Google blog converters
Zdrojové kódy offline konvertoru stáhnete zde: http://code.google.com/p/google-blog-converters-appengine/
Krok 2.2 Instalace Python interpreta
Musíte si nainstalovat Python. Jenže POZOR, aktuálně jsou dvě souběžné verze 3.1 a 2.7. Jenže žádná není s Google Blog Converters kompatibilní!!!
To co potřebujete je Python verze 2.5. S tím scripty fungují.
A druhé pozor, instalačka pro Windows vám nenastaví vše jak by měla. Takže postupujte dle tutoriálu http://www.anthonydebarros.com/2011/10/15/setting-up-python-in-windows-7/
Až budete mít Python nainstalovaný, tak si musíte stáhnout GData api a nalinkovat je do Pythonu. Návode je zde http://gdata-python-client.googlecode.com/svn/trunk/INSTALL.txt.
Krok 2.3 Konverujeme Blogger XML do Wordpress XML
A teď už byste měli být schopní pustit konečně konvertor z command line. A další pozor! Konvertor neukládá do souboru, ale vypisuje výsledek do okna command line. Takže musíte přesměrovat výstup do souboru ručně.
Příklad příkazu:
blogger2wordpress export-blog-04-15-2013.xml > wordpress-import.xml
Nedostatky konverze
Je potřeba počítat s tím, že import má několik nedostatků
- READ MORE se nepřenese ve správném formátu
- Obrázky zůstanou hotlinkované na blogger a nepřenesou se na server s Wordpressem
- Vytvořené štítky jsou špatně a ve stávajícím stavu se pomocí Wordpress Import nenaimportují. Někdo totiž rozhodl, že importní formát se změní, ale do konvertoru se tyto změny už neimplementovaly.
- Výsledný soubor je moc velký s musí se rozdělit na víc souborů (pokud se tedy jako já dostanete s importním souborem na desítky MB)
Krok 2.4 Oprava špatně přeneseného READ MORE
Blogger odděluje "READ MORE" jiným způsobem než Wordpress. V Bloggeru se používá
<a name="more"></a>
Zatímco ve wordpress se používá
<!--more-->
XML tak otevřeme například přes PSPad a hromadně nahradíme
<a name="more"></a>
za text
<!--more-->
Krok 2.5 - Rozdělení importního XML na více souborů
Protože ani po zvednutí timeout limitů v PHP a přidání paměti na úrovni PHP a Wordpressu nemusí stačit, je elegantnějším řešením, rozdělit importní XML na více souborů. Pro WRX (Wordpres eXtended RSS) formát, naštěstí udělal Ranger Pratzer moc šikovné udělátko s názvem WRX Splitter. Ten stačí stáhnout spustit a pomocí něj rozdělit soubor do menších. Já nakonec musel jít až na 2MB soubory. Proč ne větší? Kvůli kroku import do Wordpressu, kdy ve staré verzi importu končíte na timeoutech.
Krok 3 - Import včetně štítků
Tady nastává další velké ALE. Jak jsem se již zmínil v nedostatcích konverze z nepochopitelného důvodu se změnil formát WRX struktury, ovšem do konvertorů od Google tato změna neprobublala. Takže nové verze Wordpress Importu sice importují soubory, které přenesou obsah a komentáře, ovšem na import štítků rovnou zapomeňte. Na jednoduchou ruční editaci jsem přijít nedokázal. Takže nakonec jediné funkční řešení je stáhnout si starou verzi Wordpress Import 0.2 z http://wordpress.org/extend/plugins/wordpress-importer/developers/, resp. přímo link na 0.2 verzi http://downloads.wordpress.org/plugin/wordpress-importer.0.2.zip. Případným dalším možným řešením je upravit a přeprogramovat Wordpress Importer.
Nyní můžeme krok po kroku importovat jeden soubor za druhým. Bohužel ve verzi 0.2 se importer trochu pere s časovým limitem na běh scriptu. Takže možná nakonec budete muset 5MB soboubory ještě o něco zmenšit.
Krok 4 - Import obrázků z Blogger na Wordpress
Abychom dostali hotlinkované obrázky z umístění blogger na server s Wordpresem, musíme použít další plugin Blogger Image Import. Ten převádí obrázky sice docela dobře, bohužel z hlediska ovládání je opět lehce nedotažený. Při importu musíte nastavit počet obrázků který se má dávkově zpracovat. Viz. obrázek.
Bohužel nefunguje předpoklad, že jakmile proběhne dávka například 10 obrázků, provede se reloade, nebo se Ajaxem vyvolá další blok. Musíte tak pořád ručně klikat na "Start import", dokud můstek neprojde všechny články a nepřesune vše co jde. Některé obrázky se nemusí povést přenést. Při testování šlo o několik obrázků z řádově několika stovek. Pokud server spolupracuje a vypne timeout pro PHP, tak celkem rozumně zpracovávat v jedné dávce i jednotky stovek obrázků.
Dotáhnout automatický reload, aby se prošly všechny články a plugin by téměř neměl chybu. Tedy až na ještě jednu věc, obrázky se natáhnou do upload adresáře, nicméně nestanou se součástí knihovny média. Což sice nevadí, protože v článku se ukazují v pořádku, k úplné dokonalosti a integraci s Wordpressem tu prostor ještě je.
Krok 5 - Doladění štítků a kategorií
Protože jsou ve výsledku článkům přiřazeny štítky, ale všechny jsou defaultní kategorii, hodí se ještě dvě pomůcky na rychlou práci se štítky a kategoriemi.
První je plugin Categories to Tags Converter, který umí převádět kategorie na štítky a nebo obráceně. Nenechte se odradit stářím plugin a jeho "neaktuálností". DB struktura je u Wordpressu v tomto ohledu stálá, takže vše funguje jak má.
Jakmile převedete spousty kategorií na štítky, tak vám v kategoriích nic nezbyde. Je možné pomocí stejného konvertoru převést některé štítky zpět na kategorie. Nebo vytvořit ručně novou strukturu kategorií. Pro rychlejší hromadné přirazení kategorií k článkům pak doporučuji využít plugin Bulk Assign Categories to Multiple Posts, který usnadní hodně práce a času.
Migrace dokončena
Tímto by mělo být převedení dat dokončeno. Největší problémy nastávají při instalaci a konverzi přes Python, pokud jste v něm nikdy nedělali. A pak v importním pluginu, který v novějších verzích nespolupracuje jak má. Doufám, že tenhle návod ušetří ostatním čas a nervy které jsem s tím měl a pokud mi chcete za rady poděkovat, můžete to udělat pomocí paypalu nebo třeba odkázáním na tento článek.