JComments in WordPress importieren

Es gibt das kostenlose WP-Plugin FG Joomla to WP. Das importiert aber keine JComments. Man muss eine Erweiterung kaufen, wenn man die importieren will. Naja, es waren bei mir nur 160 alte Kommentare, fĂŒr deren Erhalt ich keine 30 Euro ausgeben wollte.

daoli

Wie gut, dass es im Web bereits auf Github von „daoli“ ein Skript gibt, das JComments nach dem Import der Artikel durch FG Joomla to WP vom alten CMS auf das neue ĂŒbertrĂ€gt. Leider ist das schon 10 Jahre alt. Doof. Das lĂ€uft ja nicht mehr unter einer aktuellen PHP-Version. Meine PHP-FĂ€higkeiten sind rudimentĂ€rst, das Ding umzuschreiben, hĂ€tte mich dezent ĂŒberfordert. Also Feierabend? Verschwinden meine Artikel gluckernd im Orkus der Geschichte?

Hummel

Nein! Denn Christian Hummel hat das Script in das Hier und Jetzt gewuchtet. Der Rettungsring fĂŒr meine Kommentare. Die Nachwelt jubelt!
Sie jubelt leider zu frĂŒh!

Das Skript lief bei mir nicht. Die Variablen-Verbindung funktionierte nicht so, wie vorgesehen. Also… eigentlich gar nicht. Als ich das gefixt hatte, las es zwar fröhlich alle meine Kommentare aus, aber schrieb sie nicht in die WordPress-Datenbank. Warum? Wieso? Nun… ich habe zwei Datenbanken auf meinem Webspace. NatĂŒrlich, wie mag es auch anders sein, befinden sich beide WebprĂ€senzen aus verschiedenen DBs.

JComments importieren

Also musste ich, mit meinen rudimentĂ€ren… aber egal. Am Ende funktioniert das Skript bei mir jedenfalls reibungslos.
Das Skript via FTP auf die Site packen und im Browser aufrufen. Fertig. Nur EINMAL! aufrufen! Ansonsten viel Spaß beim hĂ€ndischen Löschen aller doppelten Kommentare! Und nicht vergessen, das Skript wieder zu löschen, gell? Das ist ja öffentlich, so dass es jeder ausfĂŒhren kann.

Das Script

<?php
error_reporting(E_ERROR | E_WARNING | E_PARSE );
ini_set('display_errors', 'On');

// Enter Joomla DB Credentials
$jomuser = "J!-User";
$jompw = "J!-Pw";
$jomdb = "J!-DB";
$jomprefix = "jos_"; //edit J! prefix if necessary

// Enter WordPress Credentials
$wpuser = "WP-User";
$wppw = "WP-Pw";
$wpdb = "WP-DB";
$wpprefix = "wp_"; //edit J! prefix if necessary

// DB Configurations
$jomlink=mysqli_connect('localhost', $jomuser, $jompw);
@mysqli_select_db($jomlink, $jomdb) or die( "Unable to select joomla database");
@mysqli_set_charset('utf8');

$wplink=mysqli_connect('localhost', $wpuser, $wppw);
@mysqli_select_db($wplink, $wpdb) or die( "Unable to select wordpress database");
@mysqli_set_charset('utf8');

$query = "SELECT DISTINCT object_id FROM $jomprefix" . "jcomments";
echo $query;
print "
";
$pids = mysqli_query($jomlink, $query);

if (!$pids) {
        echo mysqli_error();
}
$num = mysqli_num_rows($pids);
$i = 0;
while ($i < $num) {
        $pid1 = mysqli_fetch_object($pids);
        $pid = $pid1->object_id;
        $query = "SELECT created FROM  $jomprefix" . "content WHERE id = " . $pid;
        echo $query;
        print "
        ";
        $created = mysqli_query($jomlink, $query);
        if (!$created) {
                echo mysqli_error();
        }
        $ct1 = mysqli_fetch_object($created);
        $ct = $ct1->created;
 	       


        $query = "SELECT id FROM $wpprefix" . "posts WHERE post_date_gmt =  '" . $ct . "' AND post_type =  'post'";
        echo $query;
        print "
        ";
        $wpids = mysqli_query($wplink, $query);
        if (!$wpids) {
                echo mysqli_error();
        }
        $wpid1 = mysqli_fetch_object($wpids);
        $wpid = $wpid1->id;
        $query = "SELECT * FROM $jomprefix" . "jcomments WHERE object_id = " . $pid;
        echo $query;
        print "
        ";
        $comments = mysqli_query($jomlink, $query);
        $comments_count = mysqli_num_rows($comments);
                while ($info = mysqli_fetch_object($comments)) {
                $author = $info->name;
                $email = $info->email;
                $url = $info->homepage;
                $ip = $info->ip;
                $cdate = $info->date;
                $content = $info->comment;
                $content = mysqli_real_escape_string($wplink, $content);

                $query = "INSERT INTO $wpprefix"."comments (comment_post_ID, comment_author, comment_author_email, comment_author_url, comment_author_IP, comment_date, comment_date_gmt, comment_content) VALUES ('" . $wpid . "', '" . $author . "', '" . $email . "', '" . $url . "', '" . $ip . "', '" . $cdate . "', '" . $cdate . "', '" . $content . "')";
                echo $query;
                print "
                ";           
                mysqli_query($wplink, $query);
        }
        $query = "UPDATE $wpprefix"."posts SET comment_count = " . $comments_count . " WHERE ID = " . $wpid;
        echo $query;
        print "
        ";
        mysqli_query($wplink, $query);

        $i++;
}
mysqli_close($link);
?>

Über den Autor

Hessi

Michael "Hessi" Heßburg ist ein erfahrener Technik-Enthusiast und ehemaliger Informatiker. Seine Website, die er seit ĂŒber 25 Jahren betreibt, deckt vielfĂ€ltige Themen ab, darunter Haus & Garten, Hausrenovierung, IT, 3D-Druck, Retrocomputing und Autoreparatur. Zudem behandelt er gesellschaftspolitische Themen wie Datenschutz und Überwachung. Hessi ist seit 20 Jahren freiberuflicher Autor und bietet in seinem Blog fundierte Einblicke und praktische Tipps. Seine BeitrĂ€ge sind sorgfĂ€ltig recherchiert und leicht verstĂ€ndlich, um Leser bei ihren Projekten zu unterstĂŒtzen.

Schreibe einen Kommentar

Ich bin mit der DatenschutzerklÀrung und der Speicherung meiner eingegebenen Daten einverstanden.