web-dev-qa-db-fra.com

Comment obtenir les réponses d'un commentaire?

Existe-t-il un moyen d'obtenir les réponses d'un commentaire par son identifiant? J'ai cherché sur google mais je n'ai rien trouvé à ce sujet.

Par exemple, j'ai un commentaire avec l'ID 123

Je souhaite afficher toutes les réponses du commentaire 123.

J'ai essayé quelque chose comme ce qui suit, mais cela n'a pas fonctionné:

$args = array(
    'status' => 'approve',
    'ID' => 123,
    'number' => '5',
    'post_id' => 73871,
    'comment_parent' => 0

);
$comments = get_comments($args);
2
Gixty

Comme comment_ID est une valeur unique, il n’est pas nécessaire d’inclure le post_id dans les arguments.

Cela fonctionne bien pour moi:

$args = array(
    'status' => 'approve', 
    'number' => '5',
    'parent' => 3194
);
$comments = get_comments($args);

Cela retournera 5 commentaires approuvés dont le parent est le commentaire avec le comment_ID 3194.

Un exemple de sortie pourrait être fait avec quelque chose comme ceci:

foreach($comments as $child_comment) {
    echo $child_comment->comment_ID;  
}
1
flomei

Dans votre boucle foreach, vous devez rechercher chaque commentaire s'il contient des réponses.

$replies = get_comments( array( 'parent' => $comment->comment_ID, 'status' => 'approve', 'order' => 'ASC' ) );

jetez un œil à ce plugin https://github.com/mukto90/comment-search/blob/master/cb-comment-search.php

cela vous aidera à rechercher par un identifiant de commentaire et à afficher toutes ses réponses (et peut-être aussi leurs réponses).

0
mukto90

Vous avez raison jusqu'à présent mais incomplet.

Vous avez besoin d'une boucle foreach après votre code. Donc ce sera comme:

$args = array(
    'status' => 'approve', 
    'number' => '5',
    'post_id' => 73871,
    'parent' => 123
);

$comments = get_comments($args);

foreach ($comments as $comment) {
    echo $comment->comment_content; // echo all the other fields you need
}
0
Abdul Awal

Je pense que je viens de le trouver, corrigez-moi si je me trompe:

$args = array(
    'status' => 'approve', 
    'number' => '5',
    'post_id' => 73871,
    'parent' => 123

);
$comments = get_comments($args);

EDIT: pas tout à fait, il semble qu'il ne retourne que la première réponse. Le reste manque.

0
Gixty