0Comment bubbleEasily set the parent of a WordPress comment

As is doc­u­mented in the site update log, for a while we had a prob­lem with our theme where it was­n’t pos­sible to reply to a com­ment so that the reply would appear cor­rectly in a threaded way. We have no fixed this prob­lem, but have been left with a sig­ni­fic­ant num­ber of com­ments which really need edit­ing so it is easi­er to see what they are in reply to. With a stand­ard word­press install this requires going into the data­base and edit­ing there, which is very tedi­ous. Instead, we’ve used some simple func­tions to add an option to the com­ment-edit admin page, to set the com­ment par­ent there. Even­tu­ally this will be developed into a prop­er plu­gin to enable this func­tion­al­ity. For now the code is below, just add it to your theme’s functions.php

function comment_parent_meta_box()
{
add_meta_box( 'comment_parent', __( 'Parent ID' ), 'comment_parent_cb', 'comment', 'normal', 'high' );
}
add_action( 'add_meta_boxes_comment', 'comment_parent_meta_box' );

function comment_parent_cb( $comment )
{
    $parent = get_comment_meta( $comment->comment_ID, 'comment_parent', true );
    wp_nonce_field( 'parent_comment_update', 'parent_comment_update', false );
    ?>
    
     ?php
}

function comment_parent_edit( $comment_id )
{
    if( ! isset( $_POST['parent_comment_update'] ) || ! wp_verify_nonce( $_POST['parent_comment_update'], 'parent_comment_update' ) ) return;
    if( isset( $_POST['comment_parent'] ) )
        update_comment_meta( $comment_id, 'comment_parent', esc_attr( $_POST['comment_parent'] ) );
}
add_action( 'edit_comment', 'comment_parent_edit' );

Leave a Reply