X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/41578db67d72562346e4dbb2a14889b23d522813..refs/tags/wordpress-4.3:/wp-admin/includes/misc.php?ds=sidebyside diff --git a/wp-admin/includes/misc.php b/wp-admin/includes/misc.php index 3680f8e5..3b6f0504 100644 --- a/wp-admin/includes/misc.php +++ b/wp-admin/includes/misc.php @@ -22,9 +22,10 @@ function got_mod_rewrite() { * This filter was previously used to force URL rewriting for other servers, * like nginx. Use the got_url_rewrite filter in got_url_rewrite() instead. * + * @since 2.5.0 + * * @see got_url_rewrite() * - * @since 2.5.0 * @param bool $got_rewrite Whether Apache and mod_rewrite are present. */ return apply_filters( 'got_rewrite', $got_rewrite ); @@ -37,6 +38,8 @@ function got_mod_rewrite() { * * @since 3.7.0 * + * @global bool $is_nginx + * * @return bool Whether the server supports URL rewriting. */ function got_url_rewrite() { @@ -46,6 +49,7 @@ function got_url_rewrite() { * Filter whether URL rewriting is available. * * @since 3.7.0 + * * @param bool $got_url_rewrite Whether URL rewriting is available. */ return apply_filters( 'got_url_rewrite', $got_url_rewrite ); @@ -56,8 +60,8 @@ function got_url_rewrite() { * * @since 1.5.0 * - * @param unknown_type $filename - * @param unknown_type $marker + * @param string $filename + * @param string $marker * @return array An array of strings from a file (.htaccess ) from between BEGIN and END markers. */ function extract_from_markers( $filename, $marker ) { @@ -92,9 +96,9 @@ function extract_from_markers( $filename, $marker ) { * * @since 1.5.0 * - * @param unknown_type $filename - * @param unknown_type $marker - * @param unknown_type $insertion + * @param string $filename + * @param string $marker + * @param array $insertion * @return bool True on write success, false on failure. */ function insert_with_markers( $filename, $marker, $insertion ) { @@ -151,6 +155,8 @@ function insert_with_markers( $filename, $marker, $insertion ) { * blank out old rules. * * @since 1.5.0 + * + * @global WP_Rewrite $wp_rewrite */ function save_mod_rewrite_rules() { if ( is_multisite() ) @@ -161,8 +167,10 @@ function save_mod_rewrite_rules() { $home_path = get_home_path(); $htaccess_file = $home_path.'.htaccess'; - // If the file doesn't already exist check for write access to the directory and whether we have some rules. - // else check for write access to the file. + /* + * If the file doesn't already exist check for write access to the directory + * and whether we have some rules. Else check for write access to the file. + */ if ((!file_exists($htaccess_file) && is_writable($home_path) && $wp_rewrite->using_mod_rewrite_permalinks()) || is_writable($htaccess_file)) { if ( got_mod_rewrite() ) { $rules = explode( "\n", $wp_rewrite->mod_rewrite_rules() ); @@ -179,6 +187,8 @@ function save_mod_rewrite_rules() { * * @since 2.8.0 * + * @global WP_Rewrite $wp_rewrite + * * @return bool True if web.config was updated successfully */ function iis7_save_url_rewrite_rules(){ @@ -207,7 +217,7 @@ function iis7_save_url_rewrite_rules(){ * * @since 1.5.0 * - * @param unknown_type $file + * @param string $file */ function update_recently_edited( $file ) { $oldfiles = (array ) get_option( 'recently_edited' ); @@ -240,10 +250,6 @@ function update_home_siteurl( $old_value, $value ) { flush_rewrite_rules(); } -add_action( 'update_option_home', 'update_home_siteurl', 10, 2 ); -add_action( 'update_option_siteurl', 'update_home_siteurl', 10, 2 ); -add_action( 'update_option_page_on_front', 'update_home_siteurl', 10, 2 ); - /** * Shorten an URL, to be used as link text * @@ -272,17 +278,15 @@ function url_shorten( $url ) { * @param array $vars An array of globals to reset. */ function wp_reset_vars( $vars ) { - for ( $i=0; $i /> - + @@ -644,6 +656,10 @@ function admin_color_scheme_picker( $user_id ) { icon_colors; } else { // Fall back to the default set of icon colors if the default scheme is missing. - $icon_colors = array( 'base' => '#999', 'focus' => '#2ea2cc', 'current' => '#fff' ); + $icon_colors = array( 'base' => '#999', 'focus' => '#00a0d2', 'current' => '#fff' ); } - echo '\n"; + echo '\n"; } -add_action( 'admin_head', 'wp_color_scheme_settings' ); +/** + * @since 3.3.0 + */ function _ipad_meta() { if ( wp_is_mobile() ) { ?> @@ -674,7 +692,6 @@ function _ipad_meta() { 1 ); - if ( ! $post_id = absint( $received['post_id'] ) ) + if ( ! $post_id = absint( $received['post_id'] ) ) { return $response; + } - if ( ! current_user_can( 'edit_post', $post_id ) || empty( $received['post_nonce'] ) ) + if ( ! current_user_can( 'edit_post', $post_id ) ) { return $response; - - if ( 2 === wp_verify_nonce( $received['post_nonce'], 'update-post_' . $post_id ) ) { - $response['wp-refresh-post-nonces'] = array( - 'replace' => array( - 'getpermalinknonce' => wp_create_nonce('getpermalink'), - 'samplepermalinknonce' => wp_create_nonce('samplepermalink'), - 'closedpostboxesnonce' => wp_create_nonce('closedpostboxes'), - '_ajax_linking_nonce' => wp_create_nonce( 'internal-linking' ), - '_wpnonce' => wp_create_nonce( 'update-post_' . $post_id ), - ), - 'heartbeatNonce' => wp_create_nonce( 'heartbeat-nonce' ), - ); } + + $response['wp-refresh-post-nonces'] = array( + 'replace' => array( + 'getpermalinknonce' => wp_create_nonce('getpermalink'), + 'samplepermalinknonce' => wp_create_nonce('samplepermalink'), + 'closedpostboxesnonce' => wp_create_nonce('closedpostboxes'), + '_ajax_linking_nonce' => wp_create_nonce( 'internal-linking' ), + '_wpnonce' => wp_create_nonce( 'update-post_' . $post_id ), + ), + 'heartbeatNonce' => wp_create_nonce( 'heartbeat-nonce' ), + ); } return $response; } -add_filter( 'heartbeat_received', 'wp_refresh_post_nonces', 10, 3 ); /** * Disable suspension of Heartbeat on the Add/Edit Post screens. * * @since 3.8.0 * + * @global string $pagenow + * * @param array $settings An array of Heartbeat settings. * @return array Filtered Heartbeat settings. */ @@ -797,12 +813,11 @@ function wp_heartbeat_set_suspension( $settings ) { return $settings; } -add_filter( 'heartbeat_settings', 'wp_heartbeat_set_suspension' ); /** * Autosave with heartbeat * - * @since 3.9 + * @since 3.9.0 */ function heartbeat_autosave( $response, $data ) { if ( ! empty( $data['wp_autosave'] ) ) { @@ -822,5 +837,65 @@ function heartbeat_autosave( $response, $data ) { return $response; } -// Run later as we have to set DOING_AUTOSAVE for back-compat -add_filter( 'heartbeat_received', 'heartbeat_autosave', 500, 2 ); + +/** + * Disables autocomplete on the 'post' form (Add/Edit Post screens) for WebKit browsers, + * as they disregard the autocomplete setting on the editor textarea. That can break the editor + * when the user navigates to it with the browser's Back button. See #28037 + * + * @since 4.0 + * + * @global bool $is_safari + * @global bool $is_chrome + */ +function post_form_autocomplete_off() { + global $is_safari, $is_chrome; + + if ( $is_safari || $is_chrome ) { + echo ' autocomplete="off"'; + } +} + +/** + * Remove single-use URL parameters and create canonical link based on new URL. + * + * Remove specific query string parameters from a URL, create the canonical link, + * put it in the admin header, and change the current URL to match. + * + * @since 4.2.0 + */ +function wp_admin_canonical_url() { + $removable_query_args = array( + 'message', 'settings-updated', 'saved', + 'update', 'updated', 'activated', + 'activate', 'deactivate', 'locked', + 'deleted', 'trashed', 'untrashed', + 'enabled', 'disabled', 'skipped', + 'spammed', 'unspammed', + ); + + /** + * Filter the list of URL parameters to remove. + * + * @since 4.2.0 + * + * @param array $removable_query_args An array of parameters to remove from the URL. + */ + $removable_query_args = apply_filters( 'removable_query_args', $removable_query_args ); + + if ( empty( $removable_query_args ) ) { + return; + } + + // Ensure we're using an absolute URL. + $current_url = set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ); + $filtered_url = remove_query_arg( $removable_query_args, $current_url ); + ?> + + +