サポート » 使い方全般 » コメントが付いている記事なのにコメント数が0と表示される

  • 解決済 mitsu140

    (@mitsu140)


    先日、Wordpressのデータを、
    「ダッシュボード」→「ツール」→「エクスポート」
    の手順でバックアップを取り、新しいデータベース上に、
    「ダッシュボード」→「ツール」→「インポート」
    の手順でインポートしました。
    無事に記事もコメントも復元できたと思っていたのですが、過去の記事のコメント数の表示が「0」になっていました。
    コメントがインポートできていないのかと思いましたが、記事を表示してみるときちんとコメントも表示されていました。
    しかし「コメントはまだありません」の表示も出ています。
    正常な状態に戻したいのですが、どこから手をつけたらいいのかわかりません。
    どなたかご教授いただけませんでしょうか?

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • モデレーター jim912

    (@jim912)

    mitsu140さん、こんにちは。

    コメント数の表示は、postsテーブルのcomment_countフィールドを表示しています。
    エクスポートしたファイルを見てみましたが、このフィールドのデータは含まれていないので、エクスポートツールでは、移行できないのでしょう。

    このデータを正しくするには、phpMyAdminなどで手動で修正するか、コメント数の再計算が行われるような処理を行えば良いことになります。(自分でコメント追加&削除とか)

    投稿がたくさんあるようなら、データベースのダンプファイルを用いて移行するか、コメント数を再計算するようなプログラムを書いた方が効率的ですね。

    jim912さん
    さっそくのご回答、ありがとうございます。

    エクスポートツールでは移行できないんですね。
    300件ぐらい記事があるので、手動で修正するにはかなり手間がかかってしまいます。

    私がWordpressをインストールしているレンタルサーバーではデータベースは1つしか作れないので、Wordpressをアップデートするのに旧バージョンのデータベースを一度削除して、MySQL 5.1の新しいデータベースを作成しました。

    コメント数を再計算するプログラムってすぐ作れるのでしょうか?
    私のようにプログラムの知識がないものは面倒でも自分でコメント追加&削除しかないですかね!?

    モデレーター jim912

    (@jim912)

    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のどこでもいいのでしょうか?

    <?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でなくなり、正常なコメント数が反映されました。
    本当にありがとうございました。

    無事解決できて本当にうれしいです。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック「コメントが付いている記事なのにコメント数が0と表示される」には新たに返信することはできません。