-1

私はワードプレスのブログを持っており、いくつかの投稿の下に大量のコメントがあります。最近、一部のコメントが 2、3 回重複していることに気付きました。Wordpressのmysqlデータベースからテーブルwp_commentsから重複要素を削除するphpコードを使用したい(サーバーからphpファイルを開くことによって)。このコードを使用しましたが、機能しません。理由はありますか?このファイルを実行すると、空白のページが表示されます (エラーはありませんが、コメントが重複しています)。

コード:

<?php

include_once($_SERVER['DOCUMENT_ROOT'].'/wp-load.php' );

global $wpdb;

$comments = $wpdb->get_results("SELECT * FROM ".$wpdb->prefix."_comments"
   ." ORDER BY comment_post_ID, comment_content");

$prev = NULL;

foreach($comments as $comment) {

  if ($prev && $prev->comment_content == $comment->comment_content
    && $prev->comment_post_ID == $comment->comment_post_ID ) {

  echo 'It works';
    $wpdb->query("DELETE FROM ".$wpdb->prefix."_comments WHERE comment_ID == ".$comment->comment_ID);

  }
  else
    $prev = $comment;
}

$wpdb->print_error();

?>

多分あなたはこのコードについてもっと良い考えを持っていますか?

4

2 に答える 2

0

私はあなたのコードを読めるようにフォーマットするのに時間を費やしました。{あなたの後にはありませんelse。if ステートメントの最初の部分に含める場合は必須だと思います。いずれにせよ、あるアプリケーションでそれらを省略しても、同じコード ブロック内の別のアプリケーションでそれらを使用することは、ひどい習慣です。コードの読み取り/保守が困難になります。

さらに、エラーが抑制されている場合、エラーが表示されない場合があります。

多分私は自分のPHPをブラッシュアップする必要がありますが、if ($prev)これまでに真実でしょうか? それはブール値ではありませんか?クエリをフェッチするときは、それほど時間はかかりません。多分そうです。

于 2013-06-17T20:09:09.290 に答える