diff --git a/wp-comments-post.php b/wp-comments-post.php index 563745954e..f7d7c4f5c8 100644 --- a/wp-comments-post.php +++ b/wp-comments-post.php @@ -16,7 +16,7 @@ $status = $wpdb->get_row("SELECT post_status, comment_status FROM $wpdb->posts W if ( empty($status->comment_status) ) { do_action('comment_id_not_found', $comment_post_ID); exit; -} elseif ( 'closed' == $status->comment_status ) { +} elseif ( !comments_open($comment_post_ID) ) { do_action('comment_closed', $comment_post_ID); wp_die( __('Sorry, comments are closed for this item.') ); } elseif ( in_array($status->post_status, array('draft', 'pending') ) ) { diff --git a/wp-includes/comment-template.php b/wp-includes/comment-template.php index 8f0705ed09..f10a94e5cd 100644 --- a/wp-includes/comment-template.php +++ b/wp-includes/comment-template.php @@ -562,14 +562,15 @@ function trackback_rdf($deprecated = '') { * @since 1.5 * @uses $post * + * @param int $post_id An optional post ID to check instead of the current post. * @return bool True if the comments are open */ -function comments_open() { - global $post; - if ( 'open' == $post->comment_status ) - return true; - else - return false; +function comments_open( $post_id=NULL ) { + + $_post = get_post($post_id); + + $open = ( 'open' == $_post->comment_status ); + return apply_filters( 'comments_open', $open, $post_id ); } /** @@ -578,14 +579,15 @@ function comments_open() { * @since 1.5 * @uses $post * + * @param int $post_id An optional post ID to check instead of the current post. * @return bool True if pings are accepted */ -function pings_open() { - global $post; - if ( 'open' == $post->ping_status ) - return true; - else - return false; +function pings_open( $post_id=NULL ) { + + $_post = get_post($post_id); + + $open = ( 'open' == $post->ping_status ); + return apply_filters( 'pings_open', $open, $post_id ); } /** diff --git a/wp-trackback.php b/wp-trackback.php index 4d82f9fc9c..9dfdebe839 100644 --- a/wp-trackback.php +++ b/wp-trackback.php @@ -69,9 +69,7 @@ if (empty($title) && empty($tb_url) && empty($blog_name)) { if ( !empty($tb_url) && !empty($title) ) { header('Content-Type: text/xml; charset=' . get_option('blog_charset') ); - $pingstatus = $wpdb->get_var("SELECT ping_status FROM $wpdb->posts WHERE ID = $tb_id"); - - if ( 'open' != $pingstatus ) + if ( !pings_open($tb_id) ) trackback_response(1, 'Sorry, trackbacks are closed for this item.'); $title = wp_specialchars( strip_tags( $title ) );