web-dev-qa-db-fra.com

Est-il possible de déplacer un commentaire qui devrait être une réponse à un autre commentaire?

J'aime avoir un blog propre, et j'aime aussi que les commentaires qui sont des réponses à d'autres commentaires soient en fait des réponses à d'autres commentaires. Certaines personnes ne s’inquiètent pas trop de cette différence et laissent simplement un autre commentaire au lieu d’une réponse. C'est bien, mais j'aimerais régler le problème pour que mon blog reste propre et que les choses soient plus claires pour moi.

Existe-t-il un moyen de "déplacer" un commentaire régulier pour qu'il devienne plutôt une réponse à un commentaire donné?

3
Svish

tout d'abord, si vous ne l'utilisez pas déjà, vous avez besoin de wordpress threaded comment . vous pouvez bien sûr le styliser avec css.

après cela, si quelqu'un commente le message et que vous pensez qu'il était supposé être une réponse à un autre commentaire, vous pouvez le faire avec déplacer les commentaires wordpress ou juste le faire manuellement ...

0
pootzko

J'utilise deux plugins pour déplacer des commentaires, je les ai utilisés sur un site pour transférer plus de 1 000 commentaires dans différents messages (la plupart des commentateurs ont posté plus de 90% des commentaires sur un message populaire, quel que soit le commentaire!).

http://www.dountsis.com/projects/move-comments/ : ceci vous permet de déplacer plusieurs commentaires en une fois. Celui-ci est utile pour déplacer des discussions entières d'un article à un autre.

Le plugin recommandé par pootzko: déplacez un commentaire à la fois, y compris le changement de thread.

Remarque: si vous déplacez un commentaire avec des réponses dans un autre message et que vous ne déplacez pas les réponses, il "rompt" le traitement des discussions, vous constaterez que les commentaires enfants ne sont pas correctement traités. Vous devez donc tous les déplacer dans un thread (ou supprimer le thread sur les commentaires enfants).

David

1
David Law

Une alternative pour les sources personnalisées. J'avais lu ces réponses, mais les plugins sont vieux ou avec trop d'options et je vais laisser ma petite solution.

Je n’ai jamais compris qu’il était aussi simple de copier tous les commentaires d’un article WordPress à un autre. L'extrait suivant copie toutes les publications de $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() est une fonction pratique autour de WP_Comment_Query. Par conséquent, si vous placez cet extrait de code dans une boucle, vous pouvez omettre le paramètre "post_id".

Oh, et si vous n’avez pas besoin de copier mais de déplacer les commentaires, il serait peut-être préférable de lancer du bon vieux SQL contre votre base de données:

<?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