How to Add WordPress Threaded Comments

8881

Threaded comments, also known as nested comments, are a cool feature on any blog, forum, or discussion. You would want comments to line up properly and want the replies to specific comments be situated in an organized thread. It doesn’t just make the website look neater, but it also helps individuals to track activity and users to locate specific comments.

There are many ways you can add WordPress threaded comments. You can use a theme that already has threaded comments on its feature list. There are a variety of styles and designs to choose from. All you have to do is ensure the feature or setting is enabled. You can also select a WordPress plugin that automatically adds WordPress threaded comments to your site.

However, the problem with plugins is the same as in themes. You would have to rely entirely on the plugins and themes to have threaded comments. Not all plugins and themes are updated or upgraded in a timely manner. There could be bugs or loopholes. Without support, such resources become outdated and quite difficult to troubleshoot. There may not be any support at all depending on who the developer is for the plugin and themes you are considering.

Fortunately, you can manually add WordPress threaded comments. Here is a way to do it on your own.

Use This Code

Go to the comments.php file of your WordPress site or whatever theme you are using. 
Use this code to add threaded comments.

You will find this section when you get in:

“<?php

if (!empty($_SERVER[‘SCRIPT_FILENAME’]) && ‘comments.php’ == basename($_SERVER[‘SCRIPT_FILENAME’]))

die (‘Please do not load this page directly. Thanks!’);

if ( post_password_required() ) { ?>

<p class=”nocomments”>

<?php

return;

}

?>”

Don’t make any changes above. Make the changes hereon.

<?php if ( have_comments() ) : ?>

<h3 id=”comments”><?php comments_number(‘No Responses’, ‘One Response’, ‘% Responses’ );?> to “<?php the_title(); ?>”</h3>

<div class=”navigation”>

<div class=”alignleft”><?php previous_comments_link() ?></div>

<div class=”alignright”><?php next_comments_link() ?></div>

</div>

<ol class=”commentlist”>

<?php wp_list_comments(); ?>

</ol>

<div class=”navigation”>

<div class=”alignleft”><?php previous_comments_link() ?></div>

<div class=”alignright”><?php next_comments_link() ?></div>

</div>

<?php else : // this is displayed if there are no comments so far ?>

<?php if (‘open’ == $post->comment_status) : ?>

<!– If comments are open, but there are no comments. –>

<?php else : // comments are closed ?>

<!– If comments are closed. –>

<p class=”nocomments”>Comments are closed.</p>

<?php endif; ?>

<?php endif; ?>

<?php if (‘open’ == $post->comment_status) : ?>

<div id=”respond”>

<h3><?php comment_form_title( ‘Leave a Reply’, ‘Leave a Reply to %s’ ); ?></h3>

<div class=”cancel-comment-reply”>

<small><?php cancel_comment_reply_link(); ?></small>

</div>

<?php if ( get_option(‘comment_registration’) && !$user_ID ) : ?>

<p>You must be <a href=”<?php echo get_option(‘siteurl’); ?>/wp-login.php?redirect_to=<?php echo urlencode(get_permalink()); ?>”>logged in</a> to post a comment.</p>

<?php else : ?>

<form action=”<?php echo get_option(‘siteurl’); ?>/wp-comments-post.php” method=”post” id=”commentform”>

<?php if ( $user_ID ) : ?>

<p>Logged in as <a href=”<?php echo get_option(‘siteurl’); ?>/wp-admin/profile.php”><?php echo $user_identity; ?></a>. <a href=”<?php echo wp_logout_url(get_permalink()); ?>” title=”Log out of this account”>Log out »</a></p>

<?php else : ?>

<p><input type=”text” name=”author” id=”author” value=”<?php echo $comment_author; ?>” size=”22″ tabindex=”1″ <?php if ($req) echo “aria-required=’true'”; ?> />

<label for=”author”><small>Name <?php if ($req) echo “(required)”; ?></small></label></p>

<p><input type=”text” name=”email” id=”email” value=”<?php echo $comment_author_email; ?>” size=”22″ tabindex=”2″ <?php if ($req) echo “aria-required=’true'”; ?> />

<label for=”email”><small>Mail (will not be published) <?php if ($req) echo “(required)”; ?></small></label></p>

<p><input type=”text” name=”url” id=”url” value=”<?php echo $comment_author_url; ?>” size=”22″ tabindex=”3″ />

<label for=”url”><small>Website</small></label></p>

<?php endif; ?>

<!–<p><small><strong>XHTML:</strong> You can use these tags: <code><?php echo allowed_tags(); ?></code></small></p>–>

<p><textarea name=”comment” id=”comment” cols=”100%” rows=”10″ tabindex=”4″></textarea></p>

<p><input name=”submit” type=”submit” id=”submit” tabindex=”5″ value=”Submit Comment” />

<?php comment_id_fields(); ?>

</p>

<?php do_action(‘comment_form’, $post->ID); ?>

</form>

<?php endif; // If registration required and not logged in ?>

</div>

<?php endif; // if you delete this the sky will fall on your head ?>

The code will do the needful and you should enable the threaded comments feature in Settings -> Discussion. 

You can find it through your admin panel. Use the following code to your header.php file:

<?php if ( is_singular() ) wp_enqueue_script( ‘comment-reply’ ); ?>

You must add this code above <?php wp_head(); ?>.

You may want to style your threaded comments section, from the images to the fonts, but those can be discussed some other time. Should you be objected to coding or want to have a much quicker and easier solution, you would have to resort to a theme or plugin. Latest versions of wordpress do have threaded comments but your choice of theme or if you are customizing it then those may come in a way that the features are not available or preloaded.