X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/446fc046ca303b25776b07134407239bdeafa3e6..refs/tags/wordpress-4.6.1:/wp-includes/functions.php?ds=sidebyside diff --git a/wp-includes/functions.php b/wp-includes/functions.php index a3afddce..ff09f345 100644 --- a/wp-includes/functions.php +++ b/wp-includes/functions.php @@ -145,7 +145,7 @@ function date_i18n( $dateformatstring, $unixtimestamp = false, $gmt = false ) { $j = @$datefunc( $dateformatstring, $i ); /** - * Filter the date formatted based on the locale. + * Filters the date formatted based on the locale. * * @since 2.8.0 * @@ -182,14 +182,19 @@ function wp_maybe_decline_date( $date ) { */ if ( 'on' === _x( 'off', 'decline months names: on or off' ) ) { // Match a format like 'j F Y' or 'j. F' - if ( @preg_match( '#^\d{1,2}\.? \w+#u', $date ) ) { - $months = $wp_locale->month; + if ( @preg_match( '#^\d{1,2}\.? [^\d ]+#u', $date ) ) { + $months = $wp_locale->month; + $months_genitive = $wp_locale->month_genitive; foreach ( $months as $key => $month ) { - $months[ $key ] = '#' . $month . '#'; + $months[ $key ] = '# ' . $month . '( |$)#u'; } - $date = preg_replace( $months, $wp_locale->month_genitive, $date ); + foreach ( $months_genitive as $key => $month ) { + $months_genitive[ $key ] = ' ' . $month . '$1'; + } + + $date = preg_replace( $months, $months_genitive, $date ); } } @@ -225,7 +230,7 @@ function number_format_i18n( $number, $decimals = 0 ) { } /** - * Filter the number formatted based on the locale. + * Filters the number formatted based on the locale. * * @since 2.8.0 * @@ -237,7 +242,7 @@ function number_format_i18n( $number, $decimals = 0 ) { /** * Convert number of bytes largest unit bytes will fit into. * - * It is easier to read 1 kB than 1024 bytes and 1 MB than 1048576 bytes. Converts + * It is easier to read 1 KB than 1024 bytes and 1 MB than 1048576 bytes. Converts * number of bytes to human readable number by taking the number of that unit * that the bytes will go into it. Supports TB value. * @@ -259,10 +264,14 @@ function size_format( $bytes, $decimals = 0 ) { 'TB' => TB_IN_BYTES, 'GB' => GB_IN_BYTES, 'MB' => MB_IN_BYTES, - 'kB' => KB_IN_BYTES, + 'KB' => KB_IN_BYTES, 'B' => 1, ); + if ( 0 === $bytes ) { + return number_format_i18n( 0, $decimals ) . ' B'; + } + foreach ( $quant as $unit => $mag ) { if ( doubleval( $bytes ) >= $mag ) { return number_format_i18n( $bytes / $mag, $decimals ) . ' ' . $unit; @@ -583,7 +592,7 @@ function do_enclose( $content, $post_ID ) { } /** - * Filter the list of enclosure links before querying the database. + * Filters the list of enclosure links before querying the database. * * Allows for the addition and/or removal of potential enclosures to save * to postmeta before checking the database for existing enclosures. @@ -637,7 +646,7 @@ function do_enclose( $content, $post_ID ) { */ function wp_get_http_headers( $url, $deprecated = false ) { if ( !empty( $deprecated ) ) - _deprecated_argument( __FUNCTION__, '2.7' ); + _deprecated_argument( __FUNCTION__, '2.7.0' ); $response = wp_safe_remote_head( $url ); @@ -675,7 +684,7 @@ function is_new_day() { * @since 2.3.0 * * @see _http_build_query() Used to build the query - * @link http://us2.php.net/manual/en/function.http-build-query.php for more on what + * @link https://secure.php.net/manual/en/function.http-build-query.php for more on what * http_build_query() does. * * @param array $data URL-encode key/value pairs. @@ -691,7 +700,7 @@ function build_query( $data ) { * @since 3.2.0 * @access private * - * @see http://us1.php.net/manual/en/function.http-build-query.php + * @see https://secure.php.net/manual/en/function.http-build-query.php * * @param array|object $data An array or object of data. Converted to array. * @param string $prefix Optional. Numeric index. If set, start parameter numbering with it. @@ -865,6 +874,8 @@ function wp_removable_query_args() { 'disabled', 'enabled', 'error', + 'hotkeys_highlight_first', + 'hotkeys_highlight_last', 'locked', 'message', 'same', @@ -881,7 +892,7 @@ function wp_removable_query_args() { ); /** - * Filter the list of query variables to remove. + * Filters the list of query variables to remove. * * @since 4.2.0 * @@ -1069,7 +1080,7 @@ function status_header( $code, $description = '' ) { if ( function_exists( 'apply_filters' ) ) /** - * Filter an HTTP status header. + * Filters an HTTP status header. * * @since 2.2.0 * @@ -1097,12 +1108,11 @@ function wp_get_nocache_headers() { $headers = array( 'Expires' => 'Wed, 11 Jan 1984 05:00:00 GMT', 'Cache-Control' => 'no-cache, must-revalidate, max-age=0', - 'Pragma' => 'no-cache', ); if ( function_exists('apply_filters') ) { /** - * Filter the cache-controlling headers. + * Filters the cache-controlling headers. * * @since 2.8.0 * @@ -1113,7 +1123,6 @@ function wp_get_nocache_headers() { * * @type string $Expires Expires header. * @type string $Cache-Control Cache-Control header. - * @type string $Pragma Pragma header. * } */ $headers = (array) apply_filters( 'nocache_headers', $headers ); @@ -1323,7 +1332,7 @@ function do_robots() { } /** - * Filter the robots.txt output. + * Filters the robots.txt output. * * @since 3.0.0 * @@ -1536,7 +1545,7 @@ function wp_get_referer() { /** * Retrieves unvalidated referer from '_wp_http_referer' or HTTP referer. * - * Do not use for redirects, use {@see wp_get_referer()} instead. + * Do not use for redirects, use wp_get_referer() instead. * * @since 4.5.0 * @@ -1777,8 +1786,8 @@ function wp_is_writable( $path ) { * * @since 2.8.0 * - * @see http://bugs.php.net/bug.php?id=27609 - * @see http://bugs.php.net/bug.php?id=30931 + * @see https://bugs.php.net/bug.php?id=27609 + * @see https://bugs.php.net/bug.php?id=30931 * * @param string $path Windows path to check for write-ability. * @return bool Whether the path is writable. @@ -1849,7 +1858,8 @@ function wp_get_upload_dir() { * @uses _wp_upload_dir() * * @param string $time Optional. Time formatted in 'yyyy/mm'. Default null. - * @param bool $create_dir Optional. Whether to check and create the uploads directory. Default true (backwards compatible). + * @param bool $create_dir Optional. Whether to check and create the uploads directory. + * Default true for backward compatibility. * @param bool $refresh_cache Optional. Whether to refresh the cache. Default false. * @return array See above for description. */ @@ -1863,7 +1873,7 @@ function wp_upload_dir( $time = null, $create_dir = true, $refresh_cache = false } /** - * Filter the uploads directory data. + * Filters the uploads directory data. * * @since 2.0.0 * @@ -2055,7 +2065,7 @@ function wp_unique_filename( $dir, $filename, $unique_filename_callback = null ) } /** - * Filter the result when generating a unique file name. + * Filters the result when generating a unique file name. * * @since 4.5.0 * @@ -2105,7 +2115,7 @@ function wp_unique_filename( $dir, $filename, $unique_filename_callback = null ) */ function wp_upload_bits( $name, $deprecated, $bits, $time = null ) { if ( !empty( $deprecated ) ) - _deprecated_argument( __FUNCTION__, '2.0' ); + _deprecated_argument( __FUNCTION__, '2.0.0' ); if ( empty( $name ) ) return array( 'error' => __( 'Empty filename' ) ); @@ -2120,7 +2130,7 @@ function wp_upload_bits( $name, $deprecated, $bits, $time = null ) { return $upload; /** - * Filter whether to treat the upload bits as an error. + * Filters whether to treat the upload bits as an error. * * Passing a non-array to the filter will effectively short-circuit preparing * the upload bits, returning that value instead. @@ -2181,28 +2191,7 @@ function wp_upload_bits( $name, $deprecated, $bits, $time = null ) { function wp_ext2type( $ext ) { $ext = strtolower( $ext ); - /** - * Filter file type based on the extension name. - * - * @since 2.5.0 - * - * @see wp_ext2type() - * - * @param array $ext2type Multi-dimensional array with extensions for a default set - * of file types. - */ - $ext2type = apply_filters( 'ext2type', array( - 'image' => array( 'jpg', 'jpeg', 'jpe', 'gif', 'png', 'bmp', 'tif', 'tiff', 'ico' ), - 'audio' => array( 'aac', 'ac3', 'aif', 'aiff', 'm3a', 'm4a', 'm4b', 'mka', 'mp1', 'mp2', 'mp3', 'ogg', 'oga', 'ram', 'wav', 'wma' ), - 'video' => array( '3g2', '3gp', '3gpp', 'asf', 'avi', 'divx', 'dv', 'flv', 'm4v', 'mkv', 'mov', 'mp4', 'mpeg', 'mpg', 'mpv', 'ogm', 'ogv', 'qt', 'rm', 'vob', 'wmv' ), - 'document' => array( 'doc', 'docx', 'docm', 'dotm', 'odt', 'pages', 'pdf', 'xps', 'oxps', 'rtf', 'wp', 'wpd', 'psd', 'xcf' ), - 'spreadsheet' => array( 'numbers', 'ods', 'xls', 'xlsx', 'xlsm', 'xlsb' ), - 'interactive' => array( 'swf', 'key', 'ppt', 'pptx', 'pptm', 'pps', 'ppsx', 'ppsm', 'sldx', 'sldm', 'odp' ), - 'text' => array( 'asc', 'csv', 'tsv', 'txt' ), - 'archive' => array( 'bz2', 'cab', 'dmg', 'gz', 'rar', 'sea', 'sit', 'sqx', 'tar', 'tgz', 'zip', '7z' ), - 'code' => array( 'css', 'htm', 'html', 'php', 'js' ), - ) ); - + $ext2type = wp_get_ext_types(); foreach ( $ext2type as $type => $exts ) if ( in_array( $ext, $exts ) ) return $type; @@ -2278,7 +2267,7 @@ function wp_check_filetype_and_ext( $file, $filename, $mimes = null ) { // If getimagesize() knows what kind of image it really is and if the real MIME doesn't match the claimed MIME if ( !empty($imgstats['mime']) && $imgstats['mime'] != $type ) { /** - * Filter the list mapping image mime types to their respective extensions. + * Filters the list mapping image mime types to their respective extensions. * * @since 3.0.0 * @@ -2311,7 +2300,7 @@ function wp_check_filetype_and_ext( $file, $filename, $mimes = null ) { } /** - * Filter the "real" file type of the given file. + * Filters the "real" file type of the given file. * * @since 3.0.0 * @@ -2335,10 +2324,10 @@ function wp_check_filetype_and_ext( $file, $filename, $mimes = null ) { */ function wp_get_mime_types() { /** - * Filter the list of mime types and file extensions. + * Filters the list of mime types and file extensions. * * This filter should be used to add, not remove, mime types. To remove - * mime types, use the 'upload_mimes' filter. + * mime types, use the {@see 'upload_mimes'} filter. * * @since 3.5.0 * @@ -2447,6 +2436,39 @@ function wp_get_mime_types() { 'pages' => 'application/vnd.apple.pages', ) ); } + +/** + * Retrieves the list of common file extensions and their types. + * + * @since 4.6.0 + * + * @return array Array of file extensions types keyed by the type of file. + */ +function wp_get_ext_types() { + + /** + * Filters file type based on the extension name. + * + * @since 2.5.0 + * + * @see wp_ext2type() + * + * @param array $ext2type Multi-dimensional array with extensions for a default set + * of file types. + */ + return apply_filters( 'ext2type', array( + 'image' => array( 'jpg', 'jpeg', 'jpe', 'gif', 'png', 'bmp', 'tif', 'tiff', 'ico' ), + 'audio' => array( 'aac', 'ac3', 'aif', 'aiff', 'm3a', 'm4a', 'm4b', 'mka', 'mp1', 'mp2', 'mp3', 'ogg', 'oga', 'ram', 'wav', 'wma' ), + 'video' => array( '3g2', '3gp', '3gpp', 'asf', 'avi', 'divx', 'dv', 'flv', 'm4v', 'mkv', 'mov', 'mp4', 'mpeg', 'mpg', 'mpv', 'ogm', 'ogv', 'qt', 'rm', 'vob', 'wmv' ), + 'document' => array( 'doc', 'docx', 'docm', 'dotm', 'odt', 'pages', 'pdf', 'xps', 'oxps', 'rtf', 'wp', 'wpd', 'psd', 'xcf' ), + 'spreadsheet' => array( 'numbers', 'ods', 'xls', 'xlsx', 'xlsm', 'xlsb' ), + 'interactive' => array( 'swf', 'key', 'ppt', 'pptx', 'pptm', 'pps', 'ppsx', 'ppsm', 'sldx', 'sldm', 'odp' ), + 'text' => array( 'asc', 'csv', 'tsv', 'txt' ), + 'archive' => array( 'bz2', 'cab', 'dmg', 'gz', 'rar', 'sea', 'sit', 'sqx', 'tar', 'tgz', 'zip', '7z' ), + 'code' => array( 'css', 'htm', 'html', 'php', 'js' ), + ) ); +} + /** * Retrieve list of allowed mime types and file extensions. * @@ -2467,7 +2489,7 @@ function get_allowed_mime_types( $user = null ) { unset( $t['htm|html'] ); /** - * Filter list of allowed mime types and file extensions. + * Filters list of allowed mime types and file extensions. * * @since 2.0.0 * @@ -2519,7 +2541,7 @@ function wp_nonce_ays( $action ) { * @since 4.1.0 The `$title` and `$args` parameters were changed to optionally accept * an integer to be used as the response code. * - * @param string|WP_Error $message Optional. Error message. If this is a {@see WP_Error} object, + * @param string|WP_Error $message Optional. Error message. If this is a WP_Error object, * the error's messages are used. Default empty. * @param string|int $title Optional. Error title. If `$message` is a `WP_Error` object, * error data with the key 'title' may be used to specify the title. @@ -2533,7 +2555,7 @@ function wp_nonce_ays( $action ) { * @type bool $back_link Whether to include a link to go back. Default false. * @type string $text_direction The text direction. This is only useful internally, when WordPress * is still loading and the site's locale is not set up yet. Accepts 'rtl'. - * Default is the value of {@see is_rtl()}. + * Default is the value of is_rtl(). * } */ function wp_die( $message = '', $title = '', $args = array() ) { @@ -2547,7 +2569,7 @@ function wp_die( $message = '', $title = '', $args = array() ) { if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) { /** - * Filter callback for killing WordPress execution for AJAX requests. + * Filters the callback for killing WordPress execution for Ajax requests. * * @since 3.4.0 * @@ -2556,7 +2578,7 @@ function wp_die( $message = '', $title = '', $args = array() ) { $function = apply_filters( 'wp_die_ajax_handler', '_ajax_wp_die_handler' ); } elseif ( defined( 'XMLRPC_REQUEST' ) && XMLRPC_REQUEST ) { /** - * Filter callback for killing WordPress execution for XML-RPC requests. + * Filters the callback for killing WordPress execution for XML-RPC requests. * * @since 3.4.0 * @@ -2565,7 +2587,7 @@ function wp_die( $message = '', $title = '', $args = array() ) { $function = apply_filters( 'wp_die_xmlrpc_handler', '_xmlrpc_wp_die_handler' ); } else { /** - * Filter callback for killing WordPress execution for all non-AJAX, non-XML-RPC requests. + * Filters the callback for killing WordPress execution for all non-Ajax, non-XML-RPC requests. * * @since 3.0.0 * @@ -2578,10 +2600,10 @@ function wp_die( $message = '', $title = '', $args = array() ) { } /** - * Kill WordPress execution and display HTML message with error message. + * Kills WordPress execution and display HTML message with error message. * * This is the default handler for wp_die if you want a custom one for your - * site then you can overload using the wp_die_handler filter in wp_die + * site then you can overload using the {@see 'wp_die_handler'} filter in wp_die(). * * @since 3.0.0 * @access private @@ -2646,6 +2668,11 @@ function _default_wp_die_handler( $message, $title = '', $args = array() ) { + <?php echo $title ?>