Well, comments ( if i remember correct and nothing has changed from v4 ) are custom post types, so u can add post_meta to it, like response
=> true
( positive ) or false
( negative ).
Then u could make custom query ( WP_Comment_Query
) to get comments for certain post with meta parametrs ( ak. Custom Field Parameters
)
You would need 2 queries, 1 returning positive, 2-nd – negative comments..
Everything othere depends on you’r design..
Ah yes. When posting a comment you woud need to make some field to save post meta whanever it is positive or negative…
Elaborating my answer:
Ok, for ex. on the front-end ( FE ) u have form, witch submits a comment to a certain post. You would need ( if u don’t have already ) some field that will determine whathere it’s “good” or “bad” comment. Lets call these field response
( and lets imagine that it’s radio button with 2 choices: good
and bad
as values ).
Then, when user submits form he must select one of the radio buttons and on a php side ( back-end ) you’ll have his answer as (string) $_POST['response']
.
so, now u have a variable $response
wich contains 1 of radio button values.
Next u would need to insert new comment into database ( for ex. using wp_insert_comment
function ) it will return new comment ID.
Next u would need to store your response
to these comment using add_comment_meta
function passing new comment ID, uniqeue name representing response
key in database ( for ex.: _response
) and a value ( $response ) ( last param – unique, better to be true )…
So, now you have comment in database, u have comment meta in database.
Now u can make a query to database to get all comments for some post/page, it would looke like these:
<?php
$args = array(
'post_id' => get_the_id(), // or if u have some variable u could use it to get all comments from post/page
'meta_key' => '_response', // from add_comment_meta - unique name representing key in database
'meta_value' => 'good' // "good" or "bad" or whatever u desire to be
);
// The Query
$comments_query = new WP_Comment_Query;
$comments = $comments_query->query( $args );
// Comment Loop
if ( $comments ) {
foreach ( $comments as $comment ) {
$response = get_comment_meta( $comment->comment_ID, '_response', true ); // store response to $response variable for later use
echo '<p>' . $comment->comment_content . '. <span>These comment is:' . $response . '</span></p>'; // the output of a comment
}
} else {
echo 'No comments found.';
}
?>
that way u can get 2 different queryies, 1 with good comments 2-nd with bad comments and echo them in different places on the page ( left side, right side ).
Basicaly it’s the same as with CPT and get_post_meta – only comments…
If u can think how to query CPT with certain meta value – u can do it with comment to..
Related links:
https://codex.wordpress.org/Class_Reference/WP_Comment_Query
https://codex.wordpress.org/Function_Reference/add_comment_meta
If u steel have some questions feel free to ask..