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 && 'future' != $post->post_status && 'pending' != $post->post_status ) { ?> -post_status ) { ?>style="display:none" type="submit" name="save" id="save-post" value="" tabindex="4" class="button button-highlighted" /> +post_status && 'future' != $post->post_status && 'pending' != $post->post_status ) { ?> +post_status ) { ?>style="display:none" type="submit" name="save" id="save-post" value="" class="button" /> + post_status && $can_publish ) { ?> - + +
- +
post_status ) { - $preview_link = esc_url(get_permalink($post->ID)); - $preview_button = __('Preview Changes'); + $preview_button = __( 'Preview Changes' ); } else { - $preview_link = esc_url(apply_filters('preview_post_link', add_query_arg('preview', 'true', get_permalink($post->ID)))); - $preview_button = __('Preview'); + $preview_button = __( 'Preview' ); } ?> - +
- + +
-
+
-
- - + post_status ) { case 'private': _e('Privately Published'); @@ -69,17 +91,19 @@ switch ( $post->post_status ) { _e('Pending Review'); break; case 'draft': + case 'auto-draft': _e('Draft'); break; } ?> post_status || 'private' == $post->post_status || $can_publish ) { ?> -post_status ) { ?>style="display:none;" class="edit-post-status hide-if-no-js" tabindex='4'> +post_status ) { ?>style="display:none;" class="edit-post-status hide-if-no-js" role="button">
- - + + - +
-
+
-
+
post_status ) { @@ -117,7 +145,7 @@ if ( 'private' == $post->post_status ) { echo esc_html( $visibility_trans ); ?> - +
@@ -125,39 +153,40 @@ echo esc_html( $visibility_trans ); ?> ID)); ?> /> - - />
- -ID)); ?> tabindex="4" />
+ +ID ) ); ?> />
/>
-
+
/>

- +

-
- +
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=""> +
- + post_status, array('publish', 'future', 'private') ) || 0 == $post->ID ) { if ( $can_publish ) : if ( !empty($post->post_date_gmt) && time() < strtotime( $post->post_date_gmt . ' +0000' ) ) : ?> - + - + - + - +
@@ -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 ) ); + ?> +
+ +
+ + +
+
+
+ +
+
+ ID ) ) + if ( EMPTY_TRASH_DAYS && MEDIA_TRASH ) { + echo "" . _x( 'Trash', 'verb' ) . ""; + } else { + $delete_ays = ! MEDIA_TRASH ? " onclick='return showNotice.warn();'" : ''; + echo "" . __( 'Delete Permanently' ) . ""; + } + ?> +
+ +
+ + + +
+
+
+ +
+ +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->separate_items_with_commas; ?>

+ +

labels->no_terms; ?>

+ +
-

+ +

+ - - - - -
- -
- - -
-

-

- - 0, 'name' => 'newcat_parent', 'orderby' => 'name', 'hierarchical' => 1, 'show_option_none' => __('Parent category') ) ); ?> - - -

-
- '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 ) ) : ?> +
+ + labels->add_new_item ); + ?> + +

+ + + + $tax_name, + 'hide_empty' => 0, + 'name' => 'new' . $tax_name . '_parent', + 'orderby' => 'name', + 'hierarchical' => 1, + 'show_option_none' => '— ' . $taxonomy->labels->parent_item . ' —', + ); + + /** + * Filters the arguments for the taxonomy parent dropdown on the Post Edit page. + * + * @since 4.4.0 + * + * @param array $parent_dropdown_args { + * Optional. Array of arguments to generate parent dropdown. + * + * @type string $taxonomy Name of the taxonomy to retrieve. + * @type bool $hide_if_empty True to skip generating markup if no + * categories are found. Default 0. + * @type string $name Value for the 'name' attribute + * of the select element. + * Default "new{$tax_name}_parent". + * @type string $orderby Which column to use for ordering + * terms. Default 'name'. + * @type bool|int $hierarchical Whether to traverse the taxonomy + * hierarchy. Default 1. + * @type string $show_option_none Text to display for the "none" option. + * Default "— {$parent} —", + * where `$parent` is 'parent_item' + * taxonomy label. + * } + */ + $parent_dropdown_args = apply_filters( 'post_edit_category_parent_dropdown_args', $parent_dropdown_args ); + + wp_dropdown_categories( $parent_dropdown_args ); + ?> + + + +

+
+ +
+ - -

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:') . '