Как перенести комментарии с joomla на wordpress?

Ссылка скопирована
1 ответ

Как перенести комментарии с joomla на wordpress?

Из способов нашел вот такой скрипт но как его использовать по полочкам никто не объяснил

<?php   $username = "username"; $password = "password"; $database = "database";   mysql_connect('localhost', $username, $password); @mysql_select_db($database) or die( "Unable to select database"); @mysql_set_charset('utf8');   $query = "SELECT DISTINCT object_id FROM jos_jcomments"; echo $query;  print " "; $pids = mysql_query($query);   if (!$pids) {  echo mysql_error(); } $num = mysql_numrows($pids); $i = 0; while ($i < $num) {  $pid = mysql_result($pids, $i, "object_id");  $query = "SELECT created FROM  jos_content WHERE id = " . $pid;  echo $query;   print "  ";  $created = mysql_query($query);  if (!$created) {  echo mysql_error();  }  $ct = mysql_result($created, 0, "created");  $query = "SELECT ID FROM  wp_posts WHERE  post_date =  '" . $ct . "' AND post_type =  'post'";  echo $query;   print "  ";  $wpids = mysql_query($query);  if (!$wpids) {  echo mysql_error();  }  $wpid = mysql_result($wpids, 0, "ID");  $query = "SELECT * FROM jos_jcomments WHERE object_id = " . $pid;  echo $query;   print "  ";  $comments = mysql_query($query);  $comments_count = mysql_numrows($comments);  $j = 0;  while ($j < $comments_count) {  $author = mysql_result($comments, $j, "name");  $email = mysql_result($comments, $j, "email");  $url = mysql_result($comments, $j, "homepage");  $ip = mysql_result($comments, $j, "ip");  $cdate = mysql_result($comments, $j, "date");  $content = mysql_result($comments, $j, "comment");  $content = mysql_real_escape_string($content);    $query = "INSERT INTO wp_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 . "', '" . $date . "', '" . $content . "')";  echo $query;   print "  ";  mysql_query($query);  $j++;  }  $query = "UPDATE wp_posts SET comment_count = " . $comments_count . " WHERE ID = " . $wpid;  echo $query;   print "  ";  mysql_query($query);    $i++; } mysql_close(); ?>

<?php $username = "username"; $password = "password"; $database = "database"; mysql_connect('localhost', $username, $password); @mysql_select_db($database) or die( "Unable to select database"); @mysql_set_charset('utf8'); $query = "SELECT DISTINCT object_id FROM jos_jcomments"; echo $query; print " "; $pids = mysql_query($query); if (!$pids) { echo mysql_error(); } $num = mysql_numrows($pids); $i = 0; while ($i < $num) { $pid = mysql_result($pids, $i, "object_id"); $query = "SELECT created FROM jos_content WHERE id = " . $pid; echo $query; print " "; $created = mysql_query($query); if (!$created) { echo mysql_error(); } $ct = mysql_result($created, 0, "created"); $query = "SELECT ID FROM wp_posts WHERE post_date = '" . $ct . "' AND post_type = 'post'"; echo $query; print " "; $wpids = mysql_query($query); if (!$wpids) { echo mysql_error(); } $wpid = mysql_result($wpids, 0, "ID"); $query = "SELECT * FROM jos_jcomments WHERE object_id = " . $pid; echo $query; print " "; $comments = mysql_query($query); $comments_count = mysql_numrows($comments); $j = 0; while ($j < $comments_count) { $author = mysql_result($comments, $j, "name"); $email = mysql_result($comments, $j, "email"); $url = mysql_result($comments, $j, "homepage"); $ip = mysql_result($comments, $j, "ip"); $cdate = mysql_result($comments, $j, "date"); $content = mysql_result($comments, $j, "comment"); $content = mysql_real_escape_string($content); $query = "INSERT INTO wp_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 . "', '" . $date . "', '" . $content . "')"; echo $query; print " "; mysql_query($query); $j++; } $query = "UPDATE wp_posts SET comment_count = " . $comments_count . " WHERE ID = " . $wpid; echo $query; print " "; mysql_query($query); $i++; } mysql_close(); ?>

Дополнительно

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Юрий Linux Ответ

Перенос комментариев с Joomla на WordPress можно сделать через миграцию базы, но нужно сопоставить статьи Joomla с записями WordPress. Комментарии нельзя просто импортировать отдельно, потому что каждый комментарий должен быть привязан к правильному comment_post_ID.

Общий порядок:

  1. Экспортировать статьи Joomla и комментарии.
  2. Импортировать статьи в WordPress.
  3. Сохранить таблицу соответствия старый ID Joomla → новый ID WordPress.
  4. Импортировать комментарии в wp_comments с правильным comment_post_ID.
  5. Заполнить wp_commentmeta, если нужны дополнительные данные.

Можно использовать плагины миграции вроде FG Joomla to WordPress, но поддержка комментариев зависит от расширения комментариев Joomla. У Joomla комментарии могли храниться в сторонних компонентах, например JComments, Komento и т.п.

Пример вставки комментария через WordPress API:

wp_insert_comment([
    'comment_post_ID' => $wp_post_id,
    'comment_author' => $author,
    'comment_author_email' => $email,
    'comment_content' => $text,
    'comment_approved' => 1,
    'comment_date' => $date,
]);

wp_insert_comment([ 'comment_post_ID' => $wp_post_id, 'comment_author' => $author, 'comment_author_email' => $email, 'comment_content' => $text, 'comment_approved' => 1, 'comment_date' => $date, ]);

Перед импортом обязательно сделайте бэкап. Лучше сначала прогнать на копии сайта и проверить 20-30 статей вручную: даты, авторов, вложенность и кодировку.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно