Since threaded comments were enabled in Wordpress 2.7, most themes include the following line in header.php
<?php if ( is_singular() ) wp_enqueue_script( 'comment-reply' ); ?>
This code checks if the visitor is browsing either a page or a post and adds the JavaScript required for threaded comments if they are.
I prefer a slight variation
<?php
if ( is_singular() AND comments_open() AND (get_option('thread_comments') == 1))
wp_enqueue_script( 'comment-reply' );
?>
My variation checks if the visitor is browsing either a page or a post, if comments are open for the entry, and finally, if threaded comments are enabled. If all of these conditions are met, the JavaScript required for threaded comments is added.
If you run your wp_enqueue_script calls in functions.php, as I do, this is the code to use:
<?php
function theme_queue_js(){
if (!is_admin()){
if ( is_singular() AND comments_open() AND (get_option('thread_comments') == 1))
wp_enqueue_script( 'comment-reply' );
}
}
add_action('get_header', 'theme_queue_js');
?>
The call is added to the get_header action as is_singular and comments_open are unknown during the init action.
Updated Aug 15: Fixed two typos in the final code sample
Props to Digging Into Wordpress for the …the right way… terminology:)
Very handy. I’ve been transferring my base theme from each new version of WP to the next, and didn’t realise I wasn’t including this!
September 16th, 2009 at 3:31 am
[...] a Peter Wilson por esta hermosa [...]
September 16th, 2009 at 9:13 am
[...] Shared Including Wordpress’s comment-reply.js (the right way) | Peter Wilson [...]
September 20th, 2009 at 11:28 pm