No našťastie nie úplne nereálna. Niekoľko rokov som prevádzkoval blog na systéme Mambo z ktorého kvôli licenčným problémom vznikla Joomla!. Rozhodol som sa blog premigrovať na CMS WordPress, nakoľko zo všetkých kandidátov sa mi pozdával najlepšie práve tento. Má širokú komunitu ako používateľov tak aj vývojárov, bohatý archív pluginov a tém a hlavne sa aktívne vyvíja. Nebolo nad čím uvažovať.
Prvý problém nastal keď som uvažoval ako to vlastne vykonať. Takmer 2 000 postov, tisíce komentárov, ešte viac fotografií, spätné odkazy na články – čiže potreba zachovať ich URL, alebo vyriešiť redirect. Veľa neľahkých úloh na konci ktorých mal byť moderný, ergonomický a výkonný systém. Po dvoch mesiacoch môžem povedať že som kapituloval na takmer všetky predsavzatia a featúry.
Samotné preklopenie článkov z jedného CMS do druhého celkom slušne zvláda skript Joomla2WordPress – zvláda kopírovať vybrané kategórie, no pokiaľ máte texty v inom kódovaní ako UTF-8 zažijete prvé trhanie vlasov. To nehovorím o tom, že skript mi nevedel kopírovať z jedného hostingu na druhý ale len to tej istej DB – s iným prefixom. Každý prenesený článok však bolo potrebné otagovať a zaradiť do novej kategórie. Skript nevedel zachovať ani ID článkov čo bolo potrebné pre ďalšie redirecty. Nakoniec som zvolil ručné kopírovanie – aspoň som pretriedil ten balast a nostalgicky zaspomínal v duchu „ty kokso to ako som mohol takúto blbosť niekedy napísať“.
Presmerovávanie URL zo starých na nové bolo pre mňa veľkou prioritou – nabúchať do .htaccess presmerovania na všetko by asi zabilo server. Chytil som sa teda ID článkov a toto sa zdalo ako svetlý bod. Do súboru index.php šablóny default stačilo pridať
if(isset($_GET['option'])) { if(is_numeric($_GET['id'])){ header ('HTTP/1.1 301 Moved Permanently'); header("Location: http://alian.info/?p={$_GET['id']}"); die(); }else { die('Hack the Planet'); } }
a presmerovanie ID fungovalo perfektne. Než som však nezistil, že WordPress mi dá pocítiť, že on najlepšie vie čo je preň dobé a ja sa mám zaujímať len a len o obsah.
Ovládnuť totiž ID článku je nadľudská úloha. S verziou 2.5 tohto systému prišla úžasná vychytávka v podobe ukladania verzii a rozpísaných draftov postov. To znamená, že začnete písať článok – skočíte si na kávičku – pridáte pár obrázkov a nakoniec ho uložíte. Medzitým systém vykonal pár automatických uložení a keď začnete písať druhý článok tak môže mať kľudne ID 23. To ma postavilo zo stoličky. Ihneď som hľadal riešenie ako to vypnúť napevno tieto revízie. Nepomohlo nastavenie na „false“ v konfiguračnom súbore, ani niekoľko pluginov ktoré som testoval. Príde mi to ako totálna zvrhlosť. Tak som sa teda zmieril s tým, že staré a nové URL proste nepreviažem. Aj keď teraz mi to je platné ako mŕtvemu zimník rád by som túto funkcionalitu zrušil – duplicity pekne nafukujú DB. Pôvodná tabuľka s článkami na starom CMS mala niečo vyše 1 MB, tá terajšia má takmer 5 MB a ešte mi ostáva prepísať 300 článkov.
Na komentáre som sa vykašlal, s galériou sa ešte hrajem. Možno som málo bojoval, no napriek tomu som bol s WordPressom spokojný – na nečisto som si testoval ďalšiu funkcionalitu, tešil sa z automatických updatov a chcel som sa venovať už len finálnej šablóne, ktorá by bola konečne podľa mojich predstáv.
No dnes sa z čista jasna objavil ďalší nečakaný problém. Týka sa lne verzie 2.7.1 a prehliadača Mozilla Firefox 3+. Pri vytváraní nového článku je obsah stále niekde presmerovávaný – popisované to bolo už aj tu. Nemal som chuť to riešiť a radšej som spustil Google Chrome.
Ak chcete migrovať web z Joomla! do WordPress a máte do 100 článkov, kľudne sa s tým vyhrajte – ID editujte priamo v DB a celkom slušne a v prijateľnom čase to zvládnete. Pri tisíckach článkov to je však už nemysliteľné ba priam tragické riešenie. WordPress je ideálne riešenie pre budovanie „na zelenej lúke“, no nie na nejaký switch.