JComments in Wor­d­Press importieren

Lese­dau­er 3 Minu­ten

Es gibt das kos­ten­lo­se WP-Plugin FG Joom­la to WP. Das impor­tiert aber kei­ne JComments. Man muss eine Erwei­te­rung kau­fen, wenn man die impor­tie­ren will. Naja, es waren bei mir nur 160 alte Kom­men­ta­re, für deren Erhalt ich kei­ne 30 Euro aus­ge­ben wollte.

dao­li

Wie gut, dass es im Web bereits auf Git­hub von „dao­li” ein Skript gibt, das JComments nach dem Import der Arti­kel durch FG Joom­la to WP vom alten CMS auf das neue über­trägt. Lei­der ist das schon 10 Jah­re alt. Doof. Das läuft ja nicht mehr unter einer aktu­el­len PHP-Ver­si­on. Mei­ne PHP-Fähig­kei­ten sind rudi­men­tärst, das Ding umzu­schrei­ben, hät­te mich dezent über­for­dert. Also Fei­er­abend? Ver­schwin­den mei­ne Arti­kel glu­ckernd im Orkus der Geschichte?

Hum­mel

Nein! Denn Chris­ti­an Hum­mel hat das Script in das Hier und Jetzt gewuch­tet. Der Ret­tungs­ring für mei­ne Kom­men­ta­re. Die Nach­welt jubelt!
Sie jubelt lei­der zu früh!

Das Skript lief bei mir nicht. Die Varia­blen-Ver­bin­dung funk­tio­nier­te nicht so, wie vor­ge­se­hen. Also… eigent­lich gar nicht. Als ich das gefixt hat­te, las es zwar fröh­lich alle mei­ne Kom­men­ta­re aus, aber schrieb sie nicht in die Wor­d­Press-Daten­bank. War­um? Wie­so? Nun… ich habe zwei Daten­ban­ken auf mei­nem Webs­pace. Natür­lich, wie mag es auch anders sein, befin­den sich bei­de Web­prä­sen­zen aus ver­schie­de­nen DBs.

  • (Wer­bung) hessburg affi cloud banner

JComments impor­tie­ren

Also muss­te ich, mit mei­nen rudi­men­tä­ren… aber egal. Am Ende funk­tio­niert das Skript bei mir jeden­falls rei­bungs­los.
Das Skript via FTP auf die Site packen und im Brow­ser auf­ru­fen. Fer­tig. Nur EINMAL! auf­ru­fen! Ansons­ten viel Spaß beim hän­di­schen Löschen aller dop­pel­ten Kom­men­ta­re! Und nicht ver­ges­sen, das Skript wie­der zu löschen, gell? Das ist ja öffent­lich, so dass es jeder aus­füh­ren 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);
?>

Schreibe einen Kommentar

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