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;
$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);
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) ) {
do_action('comment_closed', $comment_post_ID);
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);
exit;
} elseif ( !$status_obj->public ) {
@ -64,7 +67,7 @@ if ( $user->ID ) {
}
}
} 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.') );
}

View File

@ -116,6 +116,12 @@ function create_initial_post_types() {
'_builtin' => true, /* internal use only. */
'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