mitsu140さん、こんにちは。
コメント数の表示は、postsテーブルのcomment_countフィールドを表示しています。
エクスポートしたファイルを見てみましたが、このフィールドのデータは含まれていないので、エクスポートツールでは、移行できないのでしょう。
このデータを正しくするには、phpMyAdminなどで手動で修正するか、コメント数の再計算が行われるような処理を行えば良いことになります。(自分でコメント追加&削除とか)
投稿がたくさんあるようなら、データベースのダンプファイルを用いて移行するか、コメント数を再計算するようなプログラムを書いた方が効率的ですね。
jim912さん
さっそくのご回答、ありがとうございます。
エクスポートツールでは移行できないんですね。
300件ぐらい記事があるので、手動で修正するにはかなり手間がかかってしまいます。
私がWordpressをインストールしているレンタルサーバーではデータベースは1つしか作れないので、Wordpressをアップデートするのに旧バージョンのデータベースを一度削除して、MySQL 5.1の新しいデータベースを作成しました。
コメント数を再計算するプログラムってすぐ作れるのでしょうか?
私のようにプログラムの知識がないものは面倒でも自分でコメント追加&削除しかないですかね!?
mitsu140さん
プログラミングのスキルがあり、WordPressの構造に詳しい方であれば、数時間くらいで組めると思いますが、それがないと難しいでしょうね。
at Your Own Risk でよろしく◎
1.テーマフォルダの index.php 辺りに下記コードをコピペする
2.管理者ユーザーとして当該サイトにログインする
3.当該サイトを表示してみる
4.1.のコピペを削除する
5.コメント数が入ってるハズ
if( current_user_can('administrator') ) {
global $wpdb;
$wpdb->query("
UPDATE $wpdb->posts p
SET p.comment_count =
(
SELECT COUNT( c.comment_ID )
FROM $wpdb->comments c
WHERE p.ID = c.comment_post_ID
GROUP BY c.comment_post_ID
)
");
}
jim912さん
そうですね。
地道にコメント投稿→削除でやってみようと思います。
ありがとうございました。
kzさん
レスありがとうございます。
さっそく試してみましたが、変化なしです。
index.phpに上記コードをコピペしてみたところ、ブログにコードがそのまま表示されていました。
上記コードを貼る個所はindex.phpのどこでもいいのでしょうか?
sql 部分には c.comment_approved = 1 を付けた方が良いと思うよ。
$wpdb->query("
UPDATE $wpdb->posts p
SET p.comment_count =
(
SELECT COUNT( c.comment_ID )
FROM $wpdb->comments c
WHERE p.ID = c.comment_post_ID
AND c.comment_approved = 1
GROUP BY c.comment_post_ID
)
");
>kzさん
>wokamotoさん
ご教授ありがとうございます。
お二方のおっしゃる通りにしたらコメント数が0でなくなり、正常なコメント数が反映されました。
本当にありがとうございました。
無事解決できて本当にうれしいです。