/** * Determine if revisions are enabled for a given post. * * @since 3.6.0 * * @param WP_Post $post The post object. * @return bool True if number of revisions to keep isn't zero, false otherwise. */ function wp_revisions_enabled($post) { return wp_revisions_to_keep($post) !== 0; }
/** * Displays post submit form fields. * * @since 2.7.0 * * @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. * @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, $args = array()) { global $action; $post_type = $post->post_type; $post_type_object = get_post_type_object($post_type); $can_publish = current_user_can($post_type_object->cap->publish_posts); ?> <div class="submitbox" id="submitpost"> <div id="minor-publishing"> <?php // Hidden submit button early on so that the browser chooses the right button when form is submitted with Return key ?> <div style="display:none;"> <?php submit_button(__('Save'), 'button', 'save'); ?> </div> <div id="minor-publishing-actions"> <div id="save-action"> <?php if ('publish' != $post->post_status && 'future' != $post->post_status && 'pending' != $post->post_status) { ?> <input <?php if ('private' == $post->post_status) { ?> style="display:none"<?php } ?> type="submit" name="save" id="save-post" value="<?php esc_attr_e('Save Draft'); ?> " class="button" /> <span class="spinner"></span> <?php } elseif ('pending' == $post->post_status && $can_publish) { ?> <input type="submit" name="save" id="save-post" value="<?php esc_attr_e('Save as Pending'); ?> " class="button" /> <span class="spinner"></span> <?php } ?> </div> <?php if (is_post_type_viewable($post_type_object)) { ?> <div id="preview-action"> <?php $preview_link = esc_url(get_preview_post_link($post)); if ('publish' == $post->post_status) { $preview_button = __('Preview Changes'); } else { $preview_button = __('Preview'); } ?> <a class="preview button" href="<?php echo $preview_link; ?> " target="wp-preview-<?php echo (int) $post->ID; ?> " id="post-preview"><?php echo $preview_button; ?> </a> <input type="hidden" name="wp-preview" id="wp-preview" value="" /> </div> <?php } // public post type /** * Fires before the post time/date setting in the Publish meta box. * * @since 4.4.0 * * @param WP_Post $post WP_Post object for the current post. */ do_action('post_submitbox_minor_actions', $post); ?> <div class="clear"></div> </div><!-- #minor-publishing-actions --> <div id="misc-publishing-actions"> <div class="misc-pub-section misc-pub-post-status"><label for="post_status"><?php _e('Status:'); ?> </label> <span id="post-status-display"> <?php switch ($post->post_status) { case 'private': _e('Privately Published'); break; case 'publish': _e('Published'); break; case 'future': _e('Scheduled'); break; case 'pending': _e('Pending Review'); break; case 'draft': case 'auto-draft': _e('Draft'); break; } ?> </span> <?php if ('publish' == $post->post_status || 'private' == $post->post_status || $can_publish) { ?> <a href="#post_status" <?php if ('private' == $post->post_status) { ?> style="display:none;" <?php } ?> class="edit-post-status hide-if-no-js"><span aria-hidden="true"><?php _e('Edit'); ?> </span> <span class="screen-reader-text"><?php _e('Edit status'); ?> </span></a> <div id="post-status-select" class="hide-if-js"> <input type="hidden" name="hidden_post_status" id="hidden_post_status" value="<?php echo esc_attr('auto-draft' == $post->post_status ? 'draft' : $post->post_status); ?> " /> <select name='post_status' id='post_status'> <?php if ('publish' == $post->post_status) { ?> <option<?php selected($post->post_status, 'publish'); ?> value='publish'><?php _e('Published'); ?> </option> <?php } elseif ('private' == $post->post_status) { ?> <option<?php selected($post->post_status, 'private'); ?> value='publish'><?php _e('Privately Published'); ?> </option> <?php } elseif ('future' == $post->post_status) { ?> <option<?php selected($post->post_status, 'future'); ?> value='future'><?php _e('Scheduled'); ?> </option> <?php } ?> <option<?php selected($post->post_status, 'pending'); ?> value='pending'><?php _e('Pending Review'); ?> </option> <?php if ('auto-draft' == $post->post_status) { ?> <option<?php selected($post->post_status, 'auto-draft'); ?> value='draft'><?php _e('Draft'); ?> </option> <?php } else { ?> <option<?php selected($post->post_status, 'draft'); ?> value='draft'><?php _e('Draft'); ?> </option> <?php } ?> </select> <a href="#post_status" class="save-post-status hide-if-no-js button"><?php _e('OK'); ?> </a> <a href="#post_status" class="cancel-post-status hide-if-no-js button-cancel"><?php _e('Cancel'); ?> </a> </div> <?php } ?> </div><!-- .misc-pub-section --> <div class="misc-pub-section misc-pub-visibility" id="visibility"> <?php _e('Visibility:'); ?> <span id="post-visibility-display"><?php if ('private' == $post->post_status) { $post->post_password = ''; $visibility = 'private'; $visibility_trans = __('Private'); } elseif (!empty($post->post_password)) { $visibility = 'password'; $visibility_trans = __('Password protected'); } elseif ($post_type == 'post' && is_sticky($post->ID)) { $visibility = 'public'; $visibility_trans = __('Public, Sticky'); } else { $visibility = 'public'; $visibility_trans = __('Public'); } echo esc_html($visibility_trans); ?> </span> <?php if ($can_publish) { ?> <a href="#visibility" class="edit-visibility hide-if-no-js"><span aria-hidden="true"><?php _e('Edit'); ?> </span> <span class="screen-reader-text"><?php _e('Edit visibility'); ?> </span></a> <div id="post-visibility-select" class="hide-if-js"> <input type="hidden" name="hidden_post_password" id="hidden-post-password" value="<?php echo esc_attr($post->post_password); ?> " /> <?php if ($post_type == 'post') { ?> <input type="checkbox" style="display:none" name="hidden_post_sticky" id="hidden-post-sticky" value="sticky" <?php checked(is_sticky($post->ID)); ?> /> <?php } ?> <input type="hidden" name="hidden_post_visibility" id="hidden-post-visibility" value="<?php echo esc_attr($visibility); ?> " /> <input type="radio" name="visibility" id="visibility-radio-public" value="public" <?php checked($visibility, 'public'); ?> /> <label for="visibility-radio-public" class="selectit"><?php _e('Public'); ?> </label><br /> <?php if ($post_type == 'post' && current_user_can('edit_others_posts')) { ?> <span id="sticky-span"><input id="sticky" name="sticky" type="checkbox" value="sticky" <?php checked(is_sticky($post->ID)); ?> /> <label for="sticky" class="selectit"><?php _e('Stick this post to the front page'); ?> </label><br /></span> <?php } ?> <input type="radio" name="visibility" id="visibility-radio-password" value="password" <?php checked($visibility, 'password'); ?> /> <label for="visibility-radio-password" class="selectit"><?php _e('Password protected'); ?> </label><br /> <span id="password-span"><label for="post_password"><?php _e('Password:'******'private'); ?> /> <label for="visibility-radio-private" class="selectit"><?php _e('Private'); ?> </label><br /> <p> <a href="#visibility" class="save-post-visibility hide-if-no-js button"><?php _e('OK'); ?> </a> <a href="#visibility" class="cancel-post-visibility hide-if-no-js button-cancel"><?php _e('Cancel'); ?> </a> </p> </div> <?php } ?> </div><!-- .misc-pub-section --> <?php /* translators: Publish box date format, see http://php.net/date */ $datef = __('M j, Y @ H:i'); if (0 != $post->ID) { if ('future' == $post->post_status) { // scheduled for publishing at a future date $stamp = __('Scheduled for: <b>%1$s</b>'); } elseif ('publish' == $post->post_status || 'private' == $post->post_status) { // already published $stamp = __('Published on: <b>%1$s</b>'); } elseif ('0000-00-00 00:00:00' == $post->post_date_gmt) { // draft, 1 or more saves, no date specified $stamp = __('Publish <b>immediately</b>'); } elseif (time() < strtotime($post->post_date_gmt . ' +0000')) { // draft, 1 or more saves, future date specified $stamp = __('Schedule for: <b>%1$s</b>'); } else { // draft, 1 or more saves, date specified $stamp = __('Publish on: <b>%1$s</b>'); } $date = date_i18n($datef, strtotime($post->post_date)); } else { // draft (no saves, and thus no date specified) $stamp = __('Publish <b>immediately</b>'); $date = date_i18n($datef, strtotime(current_time('mysql'))); } if (!empty($args['args']['revisions_count'])) { $revisions_to_keep = wp_revisions_to_keep($post); ?> <div class="misc-pub-section misc-pub-revisions"> <?php if ($revisions_to_keep > 0 && $revisions_to_keep <= $args['args']['revisions_count']) { echo '<span title="' . esc_attr(sprintf(__('Your site is configured to keep only the last %s revisions.'), number_format_i18n($revisions_to_keep))) . '">'; printf(__('Revisions: %s'), '<b>' . number_format_i18n($args['args']['revisions_count']) . '+</b>'); echo '</span>'; } else { printf(__('Revisions: %s'), '<b>' . number_format_i18n($args['args']['revisions_count']) . '</b>'); } ?> <a class="hide-if-no-js" href="<?php echo esc_url(get_edit_post_link($args['args']['revision_id'])); ?> "><span aria-hidden="true"><?php _ex('Browse', 'revisions'); ?> </span> <span class="screen-reader-text"><?php _e('Browse revisions'); ?> </span></a> </div> <?php } if ($can_publish) { // Contributors don't get to choose the date of publish ?> <div class="misc-pub-section curtime misc-pub-curtime"> <span id="timestamp"> <?php printf($stamp, $date); ?> </span> <a href="#edit_timestamp" class="edit-timestamp hide-if-no-js"><span aria-hidden="true"><?php _e('Edit'); ?> </span> <span class="screen-reader-text"><?php _e('Edit date and time'); ?> </span></a> <fieldset id="timestampdiv" class="hide-if-js"> <legend class="screen-reader-text"><?php _e('Date and time'); ?> </legend> <?php touch_time($action === 'edit', 1); ?> </fieldset> </div><?php // /misc-pub-section } ?> <?php /** * Fires after the post time/date setting in the Publish meta box. * * @since 2.9.0 * @since 4.4.0 Added the `$post` parameter. * * @param WP_Post $post WP_Post object for the current post. */ do_action('post_submitbox_misc_actions', $post); ?> </div> <div class="clear"></div> </div> <div id="major-publishing-actions"> <?php /** * Fires at the beginning of the publishing actions section of the Publish meta box. * * @since 2.7.0 */ do_action('post_submitbox_start'); ?> <div id="delete-action"> <?php if (current_user_can("delete_post", $post->ID)) { if (!EMPTY_TRASH_DAYS) { $delete_text = __('Delete Permanently'); } else { $delete_text = __('Move to Trash'); } ?> <a class="submitdelete deletion" href="<?php echo get_delete_post_link($post->ID); ?> "><?php echo $delete_text; ?> </a><?php } ?> </div> <div id="publishing-action"> <span class="spinner"></span> <?php if (!in_array($post->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')) { ?> <input name="original_publish" type="hidden" id="original_publish" value="<?php esc_attr_e('Schedule'); ?> " /> <?php submit_button(__('Schedule'), 'primary button-large', 'publish', false); } else { ?> <input name="original_publish" type="hidden" id="original_publish" value="<?php esc_attr_e('Publish'); ?> " /> <?php submit_button(__('Publish'), 'primary button-large', 'publish', false); } } else { ?> <input name="original_publish" type="hidden" id="original_publish" value="<?php esc_attr_e('Submit for Review'); ?> " /> <?php submit_button(__('Submit for Review'), 'primary button-large', 'publish', false); } } else { ?> <input name="original_publish" type="hidden" id="original_publish" value="<?php esc_attr_e('Update'); ?> " /> <input name="save" type="submit" class="button button-primary button-large" id="publish" value="<?php esc_attr_e('Update'); ?> " /> <?php } ?> </div> <div class="clear"></div> </div> </div> <?php }
/** * Render metabox listing CSS revisions and the themes that correspond to the revisions. * Called by safecss_admin * * @global $post * @param array $safecss_post * @uses wp_revisions_to_keep * @uses WP_Query * @uses wp_post_revision_title * @uses esc_html * @uses add_query_arg * @uses menu_page_url * @uses wp_reset_query * @return string */ static function revisions_meta_box($safecss_post) { $show_all_revisions = isset($_GET['show_all_rev']); if (function_exists('wp_revisions_to_keep')) { $max_revisions = wp_revisions_to_keep((object) $safecss_post); } else { $max_revisions = defined('WP_POST_REVISIONS') && is_numeric(WP_POST_REVISIONS) ? (int) WP_POST_REVISIONS : 25; } $posts_per_page = $show_all_revisions ? $max_revisions : 6; $revisions = new WP_Query(array('posts_per_page' => $posts_per_page, 'post_type' => 'revision', 'post_status' => 'inherit', 'post_parent' => $safecss_post['ID'], 'orderby' => 'date', 'order' => 'DESC')); if ($revisions->have_posts()) { ?> <ul class="post-revisions"><?php global $post; while ($revisions->have_posts()) { $revisions->the_post(); ?> <li> <?php echo wp_post_revision_title($post); if (!empty($post->post_excerpt)) { echo ' (' . esc_html($post->post_excerpt) . ')'; } ?> </li><?php } ?> </ul><?php if ($revisions->found_posts > 6 && !$show_all_revisions) { ?> <br> <a href="<?php echo add_query_arg('show_all_rev', 'true', menu_page_url('editcss', false)); ?> "><?php esc_html_e('Show all', 'jetpack'); ?> </a> <?php } } wp_reset_query(); }
$stamp = __('Schedule for: <b>%1$s</b>'); } else { // draft, 1 or more saves, date specified $stamp = __('Publish on: <b>%1$s</b>'); } } } } $date = date_i18n($datef, strtotime($post->post_date)); } else { // draft (no saves, and thus no date specified) $stamp = __('Publish <b>immediately</b>'); $date = date_i18n($datef, strtotime(current_time('mysql'))); } if (!empty($args['args']['revisions_count'])) { $revisions_to_keep = wp_revisions_to_keep($post); ?> <div class="misc-pub-section misc-pub-revisions"> <?php if ($revisions_to_keep > 0 && $revisions_to_keep <= $args['args']['revisions_count']) { echo '<span title="' . esc_attr(sprintf(__('Your site is configured to keep only the last %s revisions.'), number_format_i18n($revisions_to_keep))) . '">'; printf(__('Revisions: %s'), '<b>' . number_format_i18n($args['args']['revisions_count']) . '+</b>'); echo '</span>'; } else { printf(__('Revisions: %s'), '<b>' . number_format_i18n($args['args']['revisions_count']) . '</b>'); } ?> <a class="hide-if-no-js" href="<?php echo esc_url(get_edit_post_link($args['args']['revision_id'])); ?> "><span aria-hidden="true"><?php