Postings und Comments in ein neues WP-Blog einfließen lassen

  • [FONT=Georgia]Worum geht´s?

    --> Aus einem bereits bestehenden Blog sollen einzelne Beiträge und Kommentare (jeweils unter Beibehaltung der originären Eintragungsdaten) in ein neu zu errichtendes Blog überführt werden.

    Soweit ich das überschaue, wurde etwas Ähnliches bislang nur in diesem Foren-Beitrag diskutiert.
    Allerdings hilft mir der dort zu findende Vorschlag, das ganze via RSS-Import zu bewerkstelligen, deshalb nicht weiter, weil ich ja auch die Kommentare übernehmen will.
    Genau das wäre bei einem RSS-Import-Verfahren nicht möglich. :???:

    Das ist meine Idee!

    --> Ich überlege nun Folgendes.
    1. Die MySQL aus dem bestehenden Blog backuppen und das Backup in dem neu zu errichtenden Blog aufsetzen.
    2. Dann die Beiträge, die dort nicht erscheinen sollen, zu Fuß eliminieren.

    Geht es vielleicht auch einfacher? :cry:


    [/FONT]

    Andreas Skowronek
    Freier Journalist, Autor und Seminar-Trainer schreibt das

    Blog für Betriebsrat und Jugendvertretung (JAV) – immer subjektiv und nie langweilig.

    http://37sechsblog.de

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren


  • Ich habe das gerade auch hinter mich gebracht und mein altes CMS gegen WP "getauscht".
    Nutzt Du phpmyadmin? Dann kannst Du ein SELECT Statement auf Deine alten Tables so gestalten, dass ein Exportierten der Statements und im Texteditor ersetzten der alten Tabellennamen auf den neuen (?_posts) anschliessend über ein INSERT für WP nutzbar ist. Vorteil: die IDs bleiben erhalten, auf die sich höchstwahrscheinlich auch Deine alten Kommentare beziehen.
    Allerdings mußt Du dann noch die Tabelle ?_post2cat füllen und die korrekte Anzahl von Beiträge pro Kategorie in den cat_count eintragen.

    Wenn Du mir die Struktur Deiner alten Tabelle gibst, kann ich Dir vermutlich recht schnell das passende SQL generieren.

    Grüße
    Stefan


  • Nutzt Du phpmyadmin? Dann kannst Du ein SELECT Statement auf Deine alten Tables so gestalten, dass ein Exportierten der Statements und im Texteditor ersetzten der alten Tabellennamen auf den neuen (?_posts) anschliessend über ein INSERT für WP nutzbar ist. Vorteil: die IDs bleiben erhalten, auf die sich höchstwahrscheinlich auch Deine alten Kommentare beziehen.

    Grüße
    Stefan

    Hallo Stefan,
    und vielen Dank für die wertvollen Hinweise. Noch größeren Dank für das Angebot, meine MySQL-Struktur durchzusehen und entsprechend zu pimpen.

    Noch ist es nicht so weit. Aber gegen Ende November werde ich – sofern ich es nicht hinbekomme :cry: – auf Dein Angebot nochmal zurückkommen.:neutral:

    Dir ein Schönes Wochenende:-D
    und Gruß

    Andreas

    Andreas Skowronek
    Freier Journalist, Autor und Seminar-Trainer schreibt das

    Blog für Betriebsrat und Jugendvertretung (JAV) – immer subjektiv und nie langweilig.

    http://37sechsblog.de

  • Hallo, die Herren!

    Ich hänge an der gleichen Stelle wie Andreas. Ich habe Stefans Antwort sogar irgendwie verstanden, aber so richtig weiß ich jetzt nicht, was ich da machen muss. :-? Ich habe die Tabelle mit dem alten Content und die mit den Kommentaren gefunden. Und ich habe eine ungefähre Ahnung, wo das bei WP rein müsste. Bloß was dazwischen passieren muss, ist mir etwas unklar.

    Viele Grüße,
    Alexandra

    Ich bin Euer Liebden sehr verbunden ...

  • Moin, die Dame ;)

    Ich habe die Tabelle mit dem alten Content und die mit den Kommentaren gefunden. Und ich habe eine ungefähre Ahnung, wo das bei WP rein müsste. Bloß was dazwischen passieren muss, ist mir etwas unklar.

    kannst Du die Struktur der alten Tabelle hier posten? Dann ist es leichter das zu erklären.

    Grüße
    Stefan

  • So, ich habe da mal was exportiert, ich hoffe, das ist das Gesuchte...

    Wenn das Blödsinn ist, bitte ich um Geduld, ich habe noch gar nie nicht in diesen Tabellen rumgekramt.

    Viele Grüße,
    Alexandra

    Ich bin Euer Liebden sehr verbunden ...

  • Moin,

    das war das was ich gesucht habe.
    Nun nehme ich an, dass die Autoren vom alten CMS auch für das neue WP beibehalten werden. Allerdings ist der Admin in der alten Umgebung die Nummer 0 und bei WP ist er/sie die 1. Außerdem müssen die Kategorien die gleichen Nummer bekommen - da funzt die Konvertierung eigentlich genauso.
    Ferner nehme ich an, dass fulltext Dein Content ist und introtext die optionale Kurzbeschreibung.

    Dann sieht Dein SQL wie folgt aus:

    Code
    select ID,(created_by+1),created,date_add(created, INTERVAL 2 HOUR ),fulltext,title,catid,introtext,'publish','open','open','','','','',modified,date_add(modified, INTERVAL 2 HOUR ),'',0,'',0,'','',0 from `mos_content`


    Mit leichten Veränderungen könntest Du damit die Daten direkt von der alten Tabelle in die neue reinschicken. Die sichere Variante ist das nun mittels phpmyadmin abzuschicken und dann zu exportieren. Es werden dann automatisch INSERT Statements erstellt. Du ersetzt dann mos_content in ??_posts - wobei die Fragezeichen von Dir bei der Konffiguration von WP festgelegt wurde. Dann mußt Du eventuell noch Sonderzeichen oder sowas ersetzen, falls das in Deinem alten CMS anders funktionierte: zum Beispiel aus

    Code
    <i>

    mußt Du nun

    Code
    <em>

    machen. Mit einem vernünftigen Editor geht das recht fix.
    Du kannst es ja erstmal mit einem Datensatz ausprobieren. Dafür mußt Du an meinem obigen Beispiel nur

    Code
    LIMIT 0,1

    anhängen.

    Nun hoffe ich, dass es etwas deutlicher ist.

    Grüße
    Stefan

  • Hallo!


    das war das was ich gesucht habe.


    Uff. Da bin ich froh. Das lässt mich für alles weitere hoffen...

    Danke. Ich werde das mal ausprobieren und dann die weiteren Fragen stellen. Ist nämlich nicht alles ganz so, wie Du angenommen hast. Vielleicht aber auch kein Problem. :-S

    Ich bin Euer Liebden sehr verbunden ...

  • Da ist sie schon, die Frage:

    Code
    MySQL meldet:  #1064 - You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'fulltext,title,catid,introtext,'publish','open','open','','',''

    Und nu?

    Und wo wir schon dabei sind: In der Regel steht der Content der Einfachheit halber im 'introtext'.

    Danke!!
    Alexandra

    Ich bin Euer Liebden sehr verbunden ...

  • Und nu?


    Welche mySQL Version hast Du laufen? Ansonsten schau mal, ob bei Kopieren des Textes was schief gelaufen sein könnte.
    Probier mal, ob es ohne das Date_add funzt, also

    Code
    select ID,(created_by+1),created,fulltext,title,catid,introtext,'publish','open','open','','','','',modified,date_add(modified, INTERVAL 2 HOUR ),'',0,'',0,'','',0 from `mos_content`

    Falls ja, gibt es bei Deiner mySQL-Installation wohl eine Beschränkung :-|

    Grüße
    Stefan

  • Hm. Nö, geht nicht.
    Auf dem Server läuft MySQL 4.0.22-Max-log. Ich habe mal einen Screenshot der Fehlermeldung aus phpMyAdmin gemacht, das sieht mir nämlich so aus, als würde da 'fulltext' als Befehl interpretiert. Kann das sein???

    Danke! Alexandra

    Ich bin Euer Liebden sehr verbunden ...

  • Hehe. Schön, dass anderen Leuten sowas auch passiert.

    Also, so geht's. Ich habe das durchlaufen lassen und kriege eine schöne bunte Tabelle. Die habe ich exportiert in eine weniger schöne Textdatei, die ich in meinen Editor kopiert habe.
    Und jetzt ersetze ich da mos_content mit wp_posts, oder wie?
    Und dann? Per INSERT einfügen?
    :confused:

    Danke! Alexandra

    Ich bin Euer Liebden sehr verbunden ...

  • Und dann? Per INSERT einfügen?


    Genau! Aber nimm erstmal nur ein INSERT.
    Dann siehst Du auch, was eventuell noch konvertiert werden muss.
    Und dann mußt Du noch einen Datensatz in ??_post2cat einfügen, in der die Nummer des Posts und die dazugehörige Kategorie drin steht. Ist echt einfach und die Benamung spricht für sich.

    Grüße
    Stefan

  • AAAAAAAH! :mrgreen:
    Jetzt habe ich es wohl kapiert. Das Feintuning werde ich wohl auch hinkriegen.
    Nun frage ich mich, ob ich alle Posts (fast 300) per Hand in die Kategorien einsortieren muss oder ob ich quasi vorsortieren kann. Ich denke drüber nach.

    VIELEN DANK, jedenfalls! Wieder was gelernt.
    Alexandra

    Ich bin Euer Liebden sehr verbunden ...

  • Nun frage ich mich, ob ich alle Posts (fast 300) per Hand in die Kategorien einsortieren muss


    Nee, da geht das genauso mit einem SQL-Statement. Dauert ca 1 Sekunde :mrgreen:
    Poste ich morgen, denn dann mußt Du auch noch den Cat_Count nachziehen...

    Grüße
    Stefan

  • Moin,

    so, weiter geht's mit diesem Statement:

    SQL
    INSERT INTO `wp_post2cat` (post_id,category_id)
        SELECT `id`,`catid`
        FROM `mos_content`


    und schon ist auch diese Tabelle korrekt gefüllt.

    Grüße
    Stefan

  • Hallo!

    Was für ein Super-Service! ;-) Wenn ich das jetzt richtig verstehe, müssten aber doch beide Tabellen in der gleichen DB liegen, oder? Tun sie aber schlauerweise nicht.
    Also erstmal SELECT ausführen, wieder alles exportieren und dann so wie vorher weitermachen? Und wie bitte 'ziehe ich den Cat_Count nach' ?

    Danke! Alexandra

    Ich bin Euer Liebden sehr verbunden ...

  • Wenn ich das jetzt richtig verstehe, müssten aber doch beide Tabellen in der gleichen DB liegen, oder? Tun sie aber schlauerweise nicht.


    Na, ob das wirklich so schlau ist :-D

    Also erstmal SELECT ausführen, wieder alles exportieren und dann so wie vorher weitermachen?


    Nein, das geht dann so nicht, weil die Tabelle post2cat aus drei Feldern besteht. Das select sollte dann so aussehen:

    SQL
    SELECT '',id,catid FROM `mos_content`


    Das setzt natürlich voraus, dass die Nummern der Kategorien gleich geblieben sind.

    Und wie bitte 'ziehe ich den Cat_Count nach' ?


    Das ist ein wenig Handarbeit. Mit folgendem Statement bekommst Du die Anzahl der Beiträge pro Kategorie:

    SQL
    SELECT `post_category`,count(`ID`) FROM `wp_posts` where `post_status` = 'publish' group by `post_category` order by `post_category` ASC


    Die entsprechenden Werte trägst Du dann in die Tabelle wp_categories unter category_count ein.

    Alles klar?
    Grüße
    Stefan

  • Schön, Euern Dialog zu lesen

    [FONT=Georgia]Hallo Alex und Stefan!
    Nach Euerm Gespräch in Sachen "wie erziehe ich meine MySQL?", sehe ich meinem Vorhaben hoffnungsfroh entgegen und sage Euch Beiden "Danke!" für die wunderbare Dokumentation dessen, was an Unerwartetem so passieren kann.

    Liebe Grüße aus DU-Homberg an die Rheinhausener Sopranistin :-D
    [/FONT]

    Andreas Skowronek
    Freier Journalist, Autor und Seminar-Trainer schreibt das

    Blog für Betriebsrat und Jugendvertretung (JAV) – immer subjektiv und nie langweilig.

    http://37sechsblog.de

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!