X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/1c09677af04c9e37714e09b73eb9dbc5b2e3eb13..ef91a7f4f3c6468973e192335a27ec0e0faca0b5:/wp-admin/includes/meta-boxes.php
diff --git a/wp-admin/includes/meta-boxes.php b/wp-admin/includes/meta-boxes.php
index d5e9cb7e..c26ced42 100644
--- a/wp-admin/includes/meta-boxes.php
+++ b/wp-admin/includes/meta-boxes.php
@@ -3,17 +3,28 @@
// -- Post related Meta Boxes
/**
- * Display post submit form fields.
+ * Displays post submit form fields.
*
* @since 2.7.0
*
- * @param object $post
+ * @global string $action
+ *
+ * @param WP_Post $post Current post object.
+ * @param array $args {
+ * Array of arguments for building the post submit meta box.
+ *
+ * @type string $id Meta box 'id' attribute.
+ * @type string $title Meta box title.
+ * @type callable $callback Meta box display callback.
+ * @type array $args Extra meta box arguments.
+ * }
*/
-function post_submit_meta_box($post) {
+function post_submit_meta_box( $post, $args = array() ) {
global $action;
$post_type = $post->post_type;
- $can_publish = current_user_can("publish_${post_type}s");
+ $post_type_object = get_post_type_object($post_type);
+ $can_publish = current_user_can($post_type_object->cap->publish_posts);
?>
@@ -21,40 +32,51 @@ function post_submit_meta_box($post) {
-
+
+
-
+
post_status ) {
@@ -117,7 +145,7 @@ if ( 'private' == $post->post_status ) {
echo esc_html( $visibility_trans ); ?>
-
+
-
-
+
ID ) {
if ( 'future' == $post->post_status ) { // scheduled for publishing at a future date
+ /* translators: Post date information. 1: Date on which the post is currently scheduled to be published */
$stamp = __('Scheduled for: %1$s ');
- } else if ( 'publish' == $post->post_status || 'private' == $post->post_status ) { // already published
+ } elseif ( 'publish' == $post->post_status || 'private' == $post->post_status ) { // already published
+ /* translators: Post date information. 1: Date on which the post was published */
$stamp = __('Published on: %1$s ');
- } else if ( '0000-00-00 00:00:00' == $post->post_date_gmt ) { // draft, 1 or more saves, no date specified
+ } elseif ( '0000-00-00 00:00:00' == $post->post_date_gmt ) { // draft, 1 or more saves, no date specified
$stamp = __('Publish immediately ');
- } else if ( time() < strtotime( $post->post_date_gmt . ' +0000' ) ) { // draft, 1 or more saves, future date specified
+ } elseif ( time() < strtotime( $post->post_date_gmt . ' +0000' ) ) { // draft, 1 or more saves, future date specified
+ /* translators: Post date information. 1: Date on which the post is to be published */
$stamp = __('Schedule for: %1$s ');
} else { // draft, 1 or more saves, date specified
+ /* translators: Post date information. 1: Date on which the post is to be published */
$stamp = __('Publish on: %1$s ');
}
$date = date_i18n( $datef, strtotime( $post->post_date ) );
@@ -166,56 +195,84 @@ if ( 0 != $post->ID ) {
$date = date_i18n( $datef, strtotime( current_time('mysql') ) );
}
+if ( ! empty( $args['args']['revisions_count'] ) ) : ?>
+
+ ' . number_format_i18n( $args['args']['revisions_count'] ) . '' );
+ ?>
+
+
+
-
-
+
ID ) ) {
- if ( !EMPTY_TRASH_DAYS ) {
- $delete_url = wp_nonce_url( add_query_arg( array('action' => 'delete', 'post' => $post->ID) ), "delete-${post_type}_{$post->ID}" );
+if ( current_user_can( "delete_post", $post->ID ) ) {
+ if ( !EMPTY_TRASH_DAYS )
$delete_text = __('Delete Permanently');
- } else {
- $delete_url = wp_nonce_url( add_query_arg( array('action' => 'trash', 'post' => $post->ID) ), "trash-${post_type}_{$post->ID}" );
+ else
$delete_text = __('Move to Trash');
- } ?>
-
" href="">
+
@@ -226,81 +283,293 @@ if ( !in_array( $post->post_status, array('publish', 'future', 'private') ) || 0
+
+
+
+
+
+
+
+
+
+
+
+ %1$s');
+ $date = date_i18n( $datef, strtotime( $post->post_date ) );
+ ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+post_type, 'post-formats' ) ) :
+ $post_formats = get_theme_support( 'post-formats' );
+
+ if ( is_array( $post_formats[0] ) ) :
+ $post_format = get_post_format( $post->ID );
+ if ( !$post_format )
+ $post_format = '0';
+ // Add in the current one if it isn't there yet, in case the current theme doesn't support it
+ if ( $post_format && !in_array( $post_format, $post_formats[0] ) )
+ $post_formats[0][] = $post_format;
+ ?>
+
+
+
+ />
+
+ />
+
+
+
+ helps) ? esc_attr($taxonomy->helps) : __('Separate tags with commas.');
+function post_tags_meta_box( $post, $box ) {
+ $defaults = array( 'taxonomy' => 'post_tag' );
+ if ( ! isset( $box['args'] ) || ! is_array( $box['args'] ) ) {
+ $args = array();
+ } else {
+ $args = $box['args'];
+ }
+ $r = wp_parse_args( $args, $defaults );
+ $tax_name = esc_attr( $r['taxonomy'] );
+ $taxonomy = get_taxonomy( $r['taxonomy'] );
+ $user_can_assign_terms = current_user_can( $taxonomy->cap->assign_terms );
+ $comma = _x( ',', 'tag delimiter' );
+ $terms_to_edit = get_terms_to_edit( $post->ID, $tax_name );
+ if ( ! is_string( $terms_to_edit ) ) {
+ $terms_to_edit = '';
+ }
?>
-
+
labels->add_new_item; ?>
+
+
+
+ labels->separate_items_with_commas; ?>
+
+ labels->no_terms; ?>
+
+
-
+
+labels->choose_from_most_used; ?>
+
-
-
-
-
-
-
-
-
- 'category' );
+ if ( ! isset( $box['args'] ) || ! is_array( $box['args'] ) ) {
+ $args = array();
+ } else {
+ $args = $box['args'];
+ }
+ $r = wp_parse_args( $args, $defaults );
+ $tax_name = esc_attr( $r['taxonomy'] );
+ $taxonomy = get_taxonomy( $r['taxonomy'] );
+ ?>
+
+
+
+
+
+
+ "; // Allows for an empty term set to be sent. 0 is an invalid Term ID and will be ignored by empty() checks.
+ ?>
+
+
+ cap->edit_terms ) ) : ?>
+
+
+
+
-
-Learn more about manual excerpts.'); ?>
+
+Learn more about manual excerpts.' ),
+ __( 'https://codex.wordpress.org/Excerpt' )
+ );
+?>
to_ping) ) .'" />';
+ $form_trackback = ' to_ping ) ) . '" aria-describedby="trackback-url-desc" />';
if ('' != $post->pinged) {
$pings = ''. __('Already pinged:') . '
';
$already_pinged = explode("\n", trim($post->pinged));
@@ -335,14 +610,23 @@ function post_trackback_meta_box($post) {
}
?>
- ()
-pingbacks, no other action necessary.'); ?>
+
+
+
+
+
+pingbacks, no other action necessary.' ),
+ __( 'https://codex.wordpress.org/Introduction_to_Blogging#Managing_Comments' )
+ );
+?>
ID);
-list_meta($metadata);
-meta_form(); ?>
+foreach ( $metadata as $key => $value ) {
+ if ( is_protected_meta( $metadata[ $key ][ 'meta_key' ], 'post' ) || ! current_user_can( 'edit_post_meta', $post->ID, $metadata[ $key ][ 'meta_key' ] ) )
+ unset( $metadata[ $key ] );
+}
+list_meta( $metadata );
+meta_form( $post ); ?>
-use in your theme.'); ?>
+use in your theme.' ),
+ __( 'https://codex.wordpress.org/Using_Custom_Fields' )
+ );
+?>
- comment_status, 'open'); ?> />
- ping_status, 'open'); ?> />trackbacks and pingbacks on this page.'),_x('http://codex.wordpress.org/Introduction_to_Blogging#Managing_Comments','Url to codex article on Managing Comments')); ?>
+ comment_status, 'open'); ?> />
+ ping_status, 'open'); ?> /> trackbacks and pingbacks on this page.' ),
+ __( 'https://codex.wordpress.org/Introduction_to_Blogging#Managing_Comments' ) );
+ ?>
+
+
+ get_var($wpdb->prepare("SELECT count(1) FROM $wpdb->comments WHERE comment_post_ID = '%d' AND ( comment_approved = '0' OR comment_approved = '1')", $post_ID));
+ $total = get_comments( array( 'post_id' => $post->ID, 'number' => 1, 'count' => true ) );
+ $wp_list_table = _get_list_table('WP_Post_Comments_List_Table');
+ $wp_list_table->display( true );
if ( 1 > $total ) {
- echo '' . __('No comments yet.') . '
';
- return;
- }
-
- wp_nonce_field( 'get-comments', 'add_comment_nonce', false );
-?>
+ echo '';
+ } else {
+ $hidden = get_hidden_meta_boxes( get_current_screen() );
+ if ( ! in_array('commentsdiv', $hidden) ) {
+ ?>
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+ post_name, $post );
?>
-
+
id, true, $post->post_type ); // TODO: ROLE SYSTEM
- if ( $post->post_author && !in_array($post->post_author, $authors) )
- $authors[] = $post->post_author;
+ global $user_ID;
?>
- $authors, 'name' => 'post_author_override', 'selected' => empty($post->ID) ? $user_ID : $post->post_author) ); ?>
+
'authors',
+ 'name' => 'post_author_override',
+ 'selected' => empty($post->ID) ? $user_ID : $post->post_author,
+ 'include_selected' => true,
+ 'show' => 'display_name_with_login',
+ ) );
}
-
/**
* Display list of revisions.
*
@@ -460,11 +782,10 @@ function post_author_meta_box($post) {
*
* @param object $post
*/
-function post_revisions_meta_box($post) {
- wp_list_post_revisions();
+function post_revisions_meta_box( $post ) {
+ wp_list_post_revisions( $post );
}
-
// -- Page related Meta Boxes
/**
@@ -474,29 +795,79 @@ function post_revisions_meta_box($post) {
*
* @param object $post
*/
-function page_attributes_meta_box($post){
+function page_attributes_meta_box($post) {
+ if ( is_post_type_hierarchical( $post->post_type ) ) :
+ $dropdown_args = array(
+ 'post_type' => $post->post_type,
+ 'exclude_tree' => $post->ID,
+ 'selected' => $post->post_parent,
+ 'name' => 'parent_id',
+ 'show_option_none' => __('(no parent)'),
+ 'sort_column' => 'menu_order, post_title',
+ 'echo' => 0,
+ );
+
+ /**
+ * Filters the arguments used to generate a Pages drop-down element.
+ *
+ * @since 3.3.0
+ *
+ * @see wp_dropdown_pages()
+ *
+ * @param array $dropdown_args Array of arguments used to generate the pages drop-down.
+ * @param WP_Post $post The current WP_Post object.
+ */
+ $dropdown_args = apply_filters( 'page_attributes_dropdown_pages_args', $dropdown_args, $post );
+ $pages = wp_dropdown_pages( $dropdown_args );
+ if ( ! empty($pages) ) :
?>
-
-
- $post->ID, 'selected' => $post->post_parent, 'name' => 'parent_id', 'show_option_none' => __('Main Page (no parent)'), 'sort_column'=> 'menu_order, post_title')); ?>
-
-
-
-
-
-page_template); ?>
-
-
+
+
-
-
-
+ endif; // end empty pages check
+ endif; // end hierarchical check.
+
+ if ( count( get_page_templates( $post ) ) > 0 && get_option( 'page_for_posts' ) != $post->ID ) :
+ $template = ! empty( $post->page_template ) ? $post->page_template : false;
+ ?>
+
+
+
+post_type ); ?>
+
+
+post_type, 'page-attributes' ) ) : ?>
+
+
+post_type && get_current_screen()->get_help_tabs() ) : ?>
+
+
-
+
-
@@ -535,7 +906,10 @@ function link_submit_meta_box($link) {
-
-
-
-
-