Įrašų perkėlimas iš Blogas.lt sistemos į WordPress

2007-06-5 · 27 comments

in Blogas,Howto,Internetas

Savo blogerio karjierą, kad ir kokia ji bebūtų, pradėjau Blogas.lt sistemoje. Po kiek laiko man ten pritrūko funkcialumo ar dar kažko ir nusprendžiau bėgti lauk, pasileisdamas WordPress sistemą. Savo senesniame webloge jau buvau prirašęs nei daug nei mažai – 68 įrašus, tad pastaruoju metu pagalvodavau, kad būtų visai smagu visus šiuos įrašus įsikelti pas save. WordPress turi įrašų importavimo ir eksportavimo funkcijas. Įrašus galima įkelti iš tokių sistemų kaip Blogger, LiveJournal, Typepad, o taip pat ir iš kitos WordPress sistemos, RSS 2.0 srautų ir t.t. Eksportuojant duomenys yra išsaugomi xml formatu tam tikra WordPress struktūra. Asmeniškai manau, kad visos programinės įrangos kūrimas turėtų judėti standartų ir tarpusavio suderinamumo link. Vartotojas neturėtų būti pririštas prie konkrečios sistemos vien todėl, kad negali perkelti savo duomenų kitur, o galėtų pasirinkti tobulesnę ar jam labiau priimtimesnę sistemą. Tai taip pat skatintų programinės įrangos tobulėjimą, nes vartotojas taptų mažiau priklausomas ir rinktųsi tobulesnį ir labiau išbaigtą produktą. Tačiau BlogHoster’iui (sistema “ant kurios” sukasi Blogas.lt) taip neatrodo – nėra jokių importavimo, o tuo labiau eksportavimo galimybių.

Pradžioje galvojau, kad perkelsiu įrašus pasinaudodamas Blogas.lt RSS srautu. Blogas.lt sistemoje egzistuoja RSS įrašų publikavimo limitas, kurio maksimalus dydis – 20 įrašų. Mąsčiau, jog galima įrašus perkėlinėti dalimis: įkeliu paskutinius 20 įrašų, juos ištrinu iš savo Blogas.lt weblogo, taip galiu per RSS nuskaityti kitus 20 įrašų. Tačiau tokiu atveju būčiau praradęs visus komentarus. O ir šiaip pabandžius tai atlikti, WordPress’as spardėsi ir importuodavo geriausiu atvėju po pirmą kiekvieno įrašo sakinį. Šis metodas netinka.

Staiga prisiminiau, jog Blogas.lt leidžia redaguoti savo weblogo šabloną, tad kodėl man jo nepavertus WordPress’o palaikomu eksportavimo failu? Tokiu atvėju galėsime perkelti ne tik pačius įrašus, bet ir jų komentarus. Atsidaręs WordPress eksportuotų duomenų failą, išsinagrinėjau jo struktūrą ir pasirašiau šabloną mano senąjam weblogui.

Norėdami persikelti įrašus iš Blogas.lt į WordPress, darome taip:

  • Susikuriame failą “data.xml”, į jį įrašome žemiau esančią informaciją:

    <rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:wp="http://wordpress.org/export/1.0/"
    >
    <channel>
    <generator>http://wordpress.org/?v=2.1.3</generator>
    #PASTE#
    </channel>
    </rss>
  • Atsidarome savo Blogas.lt blogo nustatymų panelę, ir pakeičiate įrašų kiekį puslapyje nurodančią reikšmę “Įrašų puslapyje*” į didesnę, nei visų jūsų įrašų kiekis. To reikia, kad visi įrašai būtų rodomi viename puslapyje.
  • Atsidarome šablono redagavimo langą, viską ištriname, įrašome žemiau esantį kodą ir išsaugome pakeitimus.

    #START#
    <IfMainPage>
    <Entry>
    <item>
    <title><%EntryTitle%></title>
    <pubDate><%EntryDate%> <%EntryTime%></pubDate>
    <dc:creator>admin</dc:creator>
    <description></description>
    <content:encoded>
    <![CDATA[<%EntryBody%>]]>
    </content:encoded>
    <wp:post_date><%EntryDate%> <%EntryTime%></wp:post_date>
    <wp:status>publish</wp:status>
    <Comment>
    <wp:comment>
    <wp:comment_author><%CommentAuthor%></wp:comment_author>
    <wp:comment_author_IP><%CommentAuthorIP%></wp:comment_author_IP>
    <wp:comment_author_url></wp:comment_author_url>
    <wp:comment_author_email></wp:comment_author_email>
    <wp:comment_date><%CommentDate%> <%CommentTime%></wp:comment_date>
    <wp:comment_content><%CommentBody%></wp:comment_content>
    <wp:comment_approved>1</wp:comment_approved>
    </wp:comment>
    </Comment>
    </item>
    </Entry>
    </IfMainPage>
    #END#
  • Atsidarome savo weblogą, esantį Blogas.lt ir matome bardaką. Rekomenduočiau atsidaryti su Firefox, nes jis, skirtingai nei opera, atidaro puslapio išeities teksto peržiūrą ta pačia koduote, kaip ir nurodyta puslapyje. Nusistatome tinkamą koduotę, kad rodytų tautiškus simbolius (Windows-1257). Pasirenkame išeities teksto (source) peržiūrą ir kopijuojame viską tarp #START# ir #END#, jų pačių neįtraukdami. Viską ką nukopijavome, pastiname į anksčiau sukurtą failą “data.xml”, vietoj žodžio #PASTE#.
  • Pašaliname visus “<br>” tagus. Jie atsiranda komentaruose ir mums trukdo, nes parsinant XML’ą WordPress’as galvos jog tai kažkokio įrašo pradžia (XML lauko atsidarymas). HTML tagų šalinti iš pačių įrašų nereikia, nes jie apskliausti < ![CDATA[ ]]>. Viskas, kas yra apskliausta, yra laikoma kaip lauko įrašas ir toliau nebeparsinama, tad ir HTML tagai mums nebekliudo. Komentarams WordPress’as to naudoti neleidžia. Tagų šalinimui paprasčiausiai praleidau “<BR>” paiešką ir visus pakeičiau (replace) į nieką :-) Padarę pakeitimus išsaugom failą.
  • Atsidarom WordPress admin panelę, einam į “Manage” -> “Import”, renkamės tipą “WordPress” (turėtų būt pats paskutinis). Atsidariusioje formoje pasirenkam mūsų data.xml ir spaudžiam “Upload file and submit”. Kitame lange pasirenkame kuriam vartotojui norime priskirti visus šiuos įrašus ir vėl patvirtinam formą.

VISKAS! Jei viskas pasisekė, galite džiaugtis perkeltais įrašais. Tiesa, įkeliant įrašus, kažkodėl įsikėlė tik ~50 naujausiųjų, o paskutiniojo iš tų 50, nebuvo kelių komentarų. Todėl pašalinau paskutinį įrašą ir procedūrą kartojau iš naujo, tik su tais neįkeltais įrašais, tačiau tai nesukelia didelių problemų. Taip, kad migruokit sėkmingai! Jei turit kokių klausimų ar atsirado problemų – kreipkitės, pasistengsiu pagelbėt.

P.S. Šis metodas tinka ir kitoms sistemoms (nebūtinai blogas.lt), kurios turi šablonų redagavimo galimybę. Tokiu atveju reiktų pakeisti atitinkamus šablonų tagus aukščiau parašytame tekste, kurį saugome į data.xml failą.

  • http://www.zilionis.net Vaidas Žilionis

    Geras patarimas.

  • Armandas

    tikrai puikus hack’as ;-)

  • http://www.awx.lt awx

    gan įdomiai čia, įtariu, kad greitu laiku teks viską išbandyt gyvai :))

  • Chionsas

    Galėtų blogas.lt patys pagaminti tokią eksportavimo funkciją.
    Arba galima būtų pagaminti WP pluginą importavimui (šalia jau esančių blogas.lt ir pan.)

  • http://pawka.linija.net Pawka

    Chionsas, matai, Blogas.lt patys praktiškai nieko nekuria, žiūrint iš sisteminės pusės, nes naudoja komenrcinį varikliuką. Tiesa, vienu metu mačiau, kad lyg ir ieškojo PHP programerio, bet ten turbūt minimaliems darbams. O WP plugino irgi nelabai gaunasi padaryt, nes čia pakeitimus visus reik atlikinėt ne iš WordPress’o pusės, o iš Blogas.lt sistemos. Nors žinoma viskas įmanoma :-)

  • http://www.slave.lt/blog Slave

    Genialu, Pawka :)

  • http://www.atlaikyk.com Evil

    O as maniau kad tu nuo wordpress ir pradejai, nes kai pamaciau tavo bloga dar nebuvau girdejes blogas.lt ;]

  • http://pawka.linija.net Pawka

    Čia jau būtų degradavimas :-)

  • Pingback: Nauji namai()

  • http://www.blogas.lt/originalas/ Original’as

    respect, čia tai gerai prikonstravai. :)

    Blogas užpiso su savo gay baneriais, dabar super gaidišką WYWSYG įdėjo ir dar kažką skiedžia, kad nėr ko norėt daikto už dyką…

    wordpress.com duoda tau normalų daiktą for free, tai čia tik laiko klausimas, kada blogas.lt užsilenks, nes pagrindinė problem buvo įrašų exportavimas. :)

  • Humanangel

    Pabandžiau pasinaudoti šiuo patarimu, bet nieko neišėjo, įrašai nepasirodė :( Turbūt todėl, kad esu visai žalia šiuose reikaluose. Todėl keletas klausimų:
    1. Ar su 2002 m. Exceliu galiu teisingai sukurti xml failą?
    2. Ar nukopijuotą blogo įrašų kodą reikia įterpti ištrinant ir groteles, ar įterpti tarp grotelių? (Čia turbūt labai juokingas klausimas)
    3. Šalinant tagus, radau jų tik vieną, kadangi ir tų įrašų neperdaugiausiai, o tuo labiau komentarų. Bet liko keletas eilučių, kurios prasideda

  • Humanangel

    hmm, turbūt perdaug prirašiau, nes nukando komentaro pabaigą. Ji turėjo būti tokia: … . Ar ir tokius reiktų pašalint?
    4. Naudoju Internet Explorer naršyklę, gal neteisingai atvaizdavo įrašų kodą?
    Iš anksto dėkoju už pagalbą!

  • Humanangel

    Trečias bandymas :) su tais br tagais nepapokštausi. Ima ir kažkur pradingsta. Tai 3. punktas buvo apie tuos br. O punkto pabaigoj norėjau pasakyti kad tie br kai kur pradeda komandu eilute ir ja uzbaigia. Kaip su jais?

  • http://www.vili.lt vilnele

    man tai suimportavo. visai gražiai, visus komentarus. bėda tik, kad įrašų nesuimportavo. pavadinimas yra, data ir komentarai yra, o štai teksto – nėr. gal yra protingų žmonių, kurie patars, ką daryti, nes gi nesinori visko palikti blogui… :)

  • http://www.blogas.lt/timo Timas

    nu man tai nieko nesigavo. rodė, kad nukopijavo 29 entries, bet nei vieno pačiam wordpresse nerodo.
    net jau patį kodą blogas.lt pakeitus rodo ne visus įrašus.
    nesuveikė :(

  • http://www.blogas.lt/timo Timas

    suveikė. tik tiek kad ž ir š raidžių nerodo normaliai ir kiekvieno įrašo pradžioj tą CDATA rodo kažkodėl.

    anyway, dėkui

  • http://vipgrupe.lt Fewswrarobona

    Neblogai

  • Pingback: Persikėliau į Wordpress « Vygando minčių kupeta()

  • http://gemq.wordpress.com gemq

    Puikiai pavyko. Aciu. :)

  • Silas

    Gal turit idėjų kaip redirektą iš blogas.lt į naująjį padaryt?

  • http://pawka.linija.net/ Pawka

    Ta prasme, kad atėjus į tavo Blogas.lt blogą redirektintų į kažkur kitur esantį puslapį? Galima su JavaScript: window.location=’http://www.delfi.lt/’

  • Pingback: » wuhhuu!! pavyko sukelti įrašus BlogasPavadinimas()

  • http://originalas.blogas.lt/ Originalas

    Įmanoma kaip nors 440 įrašus išeksportuot? Man 100 užkrauna, o 440 tiesiog baltą langą užkrauna..

  • http://pawka.linija.net/ Pawka

    Čia iš blogas.lt pusės neišveda?

  • http://originalas.blogas.lt/ Originalas

    Jo, tipo zero size return arba baltas lapas, jei nustatai bent 200 įrašu..

  • Pingback: Damn better than your’s: Wordpress.com - Top Games & Hardware()

  • Pingback: Blogo perkėlimas iš BLOGas.lt į WordPress 2.7 [updated] - Top Games & Hardware()

Previous post:

Next post: