Register 'inherit' as a post status. Check the parent post status when commenting on attachments.

git-svn-id: http://svn.automattic.com/wordpress/trunk@14086 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
ryan 2010-04-14 14:07:48 +00:00
parent 66dc4fe476
commit 31c4756a42
2 changed files with 14 additions and 5 deletions

View File

@ -19,19 +19,22 @@ nocache_headers();
$comment_post_ID = isset($_POST['comment_post_ID']) ? (int) $_POST['comment_post_ID'] : 0; $comment_post_ID = isset($_POST['comment_post_ID']) ? (int) $_POST['comment_post_ID'] : 0;
$status = $wpdb->get_row( $wpdb->prepare("SELECT post_status, comment_status FROM $wpdb->posts WHERE ID = %d", $comment_post_ID) ); $post = get_post($comment_post_ID);
if ( empty($status->comment_status) ) { if ( empty($post->comment_status) ) {
do_action('comment_id_not_found', $comment_post_ID); do_action('comment_id_not_found', $comment_post_ID);
exit; exit;
} }
$status_obj = get_post_status_object($status->post_status); // get_post_status() will get the parent status for attachments.
$status = get_post_status($post);
$status_obj = get_post_status_object($status);
if ( !comments_open($comment_post_ID) ) { if ( !comments_open($comment_post_ID) ) {
do_action('comment_closed', $comment_post_ID); do_action('comment_closed', $comment_post_ID);
wp_die( __('Sorry, comments are closed for this item.') ); wp_die( __('Sorry, comments are closed for this item.') );
} elseif ( 'trash' == $status->post_status ) { } elseif ( 'trash' == $status ) {
do_action('comment_on_trash', $comment_post_ID); do_action('comment_on_trash', $comment_post_ID);
exit; exit;
} elseif ( !$status_obj->public ) { } elseif ( !$status_obj->public ) {
@ -64,7 +67,7 @@ if ( $user->ID ) {
} }
} }
} else { } else {
if ( get_option('comment_registration') || 'private' == $status->post_status ) if ( get_option('comment_registration') || 'private' == $status )
wp_die( __('Sorry, you must be logged in to post a comment.') ); wp_die( __('Sorry, you must be logged in to post a comment.') );
} }

View File

@ -116,6 +116,12 @@ function create_initial_post_types() {
'_builtin' => true, /* internal use only. */ '_builtin' => true, /* internal use only. */
'label_count' => _n_noop('Auto-Draft <span class="count">(%s)</span>', 'Auto-Drafts <span class="count">(%s)</span>') 'label_count' => _n_noop('Auto-Draft <span class="count">(%s)</span>', 'Auto-Drafts <span class="count">(%s)</span>')
) ); ) );
register_post_status( 'inherit', array( 'label' => _x('Inherit', 'post'),
'internal' => true,
'_builtin' => true, /* internal use only. */
'label_count' => _n_noop('Inherit <span class="count">(%s)</span>', 'Inherit <span class="count">(%s)</span>')
) );
} }
add_action( 'init', 'create_initial_post_types', 0 ); // highest priority add_action( 'init', 'create_initial_post_types', 0 ); // highest priority