web-dev-qa-db-ja.com

別のコメントに返信する必要があるコメントを移動することは可能ですか?

私はきれいなブログを作るのが好きです、そして他のコメントへの返信であるコメントが実際に他のコメントへの返信であることも好きです。その違いをあまり気にせず、返信ではなく別のコメントを残す人もいます。それは大丈夫ですが、私は私のブログがきれいに保たれるように、そして物事が私自身にとってより明確になるようにそれを修正したいです。

通常のコメントを「移動」して特定のコメントへの返信になるようにする方法はありますか。

3
Svish

最初に、まだ使っていないのなら、 wordpressのスレッドコメント が必要です。あなたはもちろんCSSでそれを様式化することができます。

その後、誰かがその投稿にコメントし、それが他のコメントへの返信であると思われる場合は、 move wordpressのコメントでそれを行うことができます それとも手動でそれを行う...

0
pootzko

私はコメントを移動するために2つのプラグインを使用し、さまざまな投稿に1,000を超えるコメントを移動するためにそれらをサイトで使用しました(コメントが何であっても私のコメント投稿者のほとんどは1つの人気のある投稿に90%のコメントを投稿しました).

http://www.dountsis.com/projects/move-comments/ :これにより、複数のコメントをまとめて移動できます。これはスレッド全体をあるポストから別のポストに移動するのに役立ちます。

Pootzkoが推奨するプラグイン:スレッド変更を含め、一度に1つのコメントを移動します。

注:返信付きスレッド化コメントを別の投稿に移動しても、それをスレッド化を「中断」しない場合は、子コメントが正しくスレッド化されていないことがわかります。そのため、それらをすべてスレッド内で移動する必要があります(または、子コメントのスレッドを削除します)。

ダビデ

1
David Law

カスタムソースの代替手段私はこの答えを読んだことがありますが、プラグインは古くなっているか、多くの選択肢がありますので、私は私の小さな解決策を残します。

あるWordPressの投稿から別の投稿にすべてのコメントをコピーするのがそれほど簡単であることを私は知りませんでした。次のスニペットは、すべての投稿を$post_idから$new_post_idにコピーします。

<?php
// copy all comments from post $post_id to post $new_post_id
foreach ( get_comments( array( 'post_id' => $post_id ) ) as $comment ) {
    $comment->comment_post_ID = $new_post_id;
    wp_insert_comment( (array) $comment );
}

get_comments()はWP_Comment_Queryを中心とした便利な関数です。したがって、このスニペットをループの中に入れる場合は、 'post_id'パラメータを省略することができます。

コピーをする必要がなくコメントを移動する必要がない場合は、データベースに対して古き良きSQLを実行することをお勧めします。

<?php
function move_comments( $from_post_id, $to_post_id ) {
  global $wpdb;

  $sql = sprintf(
    'UPDATE %s SET comment_post_id=%s WHERE comment_post_id=%s;',
    $wpdb->comments,
    (int) $to_post_id,
    (int) $from_post_id
  );

  $wpdb->query( $sql );
}
0
bueltge