X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/53f4633144ed68c8b8fb5861f992b5489894a940..784f914b1e4b1c62d6657e86397c2e83bcee4295:/wp-admin/custom-header.php diff --git a/wp-admin/custom-header.php b/wp-admin/custom-header.php index e61feb78..a46bd94b 100644 --- a/wp-admin/custom-header.php +++ b/wp-admin/custom-header.php @@ -18,7 +18,7 @@ class Custom_Image_Header { /** * Callback for administration header. * - * @var callback + * @var callable * @since 2.1.0 */ public $admin_header_callback; @@ -26,7 +26,7 @@ class Custom_Image_Header { /** * Callback for header div. * - * @var callback + * @var callable * @since 3.0.0 */ public $admin_image_div_callback; @@ -41,6 +41,10 @@ class Custom_Image_Header { public $default_headers = array(); /** + * Used to trigger a success message when settings updated and set to true. + * + * @since 3.0.0 + * @access private * @var bool */ private $updated; @@ -49,8 +53,8 @@ class Custom_Image_Header { * Constructor - Register administration header callback. * * @since 2.1.0 - * @param callback $admin_header_callback - * @param callback $admin_image_div_callback Optional custom image div output callback. + * @param callable $admin_header_callback + * @param callable $admin_image_div_callback Optional custom image div output callback. */ public function __construct($admin_header_callback, $admin_image_div_callback = '') { $this->admin_header_callback = $admin_header_callback; @@ -257,6 +261,9 @@ class Custom_Image_Header { * Random image option is on by default if no header has been set. * * @since 3.0.0 + * + * @param string $type The header type. One of 'default' (for the Uploaded Images control) + * or 'uploaded' (for the Uploaded Images control). */ public function show_header_selector( $type = 'default' ) { if ( 'default' == $type ) { @@ -278,14 +285,13 @@ class Custom_Image_Header { foreach ( $headers as $header_key => $header ) { $header_thumbnail = $header['thumbnail_url']; $header_url = $header['url']; - $header_desc = empty( $header['description'] ) ? '' : $header['description']; - $header_alt_text = empty( $header['alt_text'] ) ? $header_desc : $header['alt_text']; + $header_alt_text = empty( $header['alt_text'] ) ? '' : $header['alt_text']; echo '
'; echo ''; + echo '' . esc_attr( $header_alt_text ) .''; echo '
'; } echo '
'; @@ -520,16 +526,48 @@ class Custom_Image_Header { printf( __( 'Images of exactly %1$d × %2$d pixels will be used as-is.' ) . '
', get_theme_support( 'custom-header', 'width' ), get_theme_support( 'custom-header', 'height' ) ); } elseif ( current_theme_supports( 'custom-header', 'flex-height' ) ) { if ( ! current_theme_supports( 'custom-header', 'flex-width' ) ) - printf( __( 'Images should be at least %1$d pixels wide.' ) . ' ', get_theme_support( 'custom-header', 'width' ) ); + printf( + /* translators: %s: size in pixels */ + __( 'Images should be at least %s wide.' ) . ' ', + sprintf( + /* translators: %d: custom header width */ + '' . __( '%d pixels' ) . '', + get_theme_support( 'custom-header', 'width' ) + ) + ); } elseif ( current_theme_supports( 'custom-header', 'flex-width' ) ) { if ( ! current_theme_supports( 'custom-header', 'flex-height' ) ) - printf( __( 'Images should be at least %1$d pixels tall.' ) . ' ', get_theme_support( 'custom-header', 'height' ) ); + printf( + /* translators: %s: size in pixels */ + __( 'Images should be at least %s tall.' ) . ' ', + sprintf( + /* translators: %d: custom header height */ + '' . __( '%d pixels' ) . '', + get_theme_support( 'custom-header', 'height' ) + ) + ); } if ( current_theme_supports( 'custom-header', 'flex-height' ) || current_theme_supports( 'custom-header', 'flex-width' ) ) { if ( current_theme_supports( 'custom-header', 'width' ) ) - printf( __( 'Suggested width is %1$d pixels.' ) . ' ', get_theme_support( 'custom-header', 'width' ) ); + printf( + /* translators: %s: size in pixels */ + __( 'Suggested width is %s.' ) . ' ', + sprintf( + /* translators: %d: custom header width */ + '' . __( '%d pixels' ) . '', + get_theme_support( 'custom-header', 'width' ) + ) + ); if ( current_theme_supports( 'custom-header', 'height' ) ) - printf( __( 'Suggested height is %1$d pixels.' ) . ' ', get_theme_support( 'custom-header', 'height' ) ); + printf( + /* translators: %s: size in pixels */ + __( 'Suggested height is %s.' ) . ' ', + sprintf( + /* translators: %d: custom header height */ + '' . __( '%d pixels' ) . '', + get_theme_support( 'custom-header', 'height' ) + ) + ); } ?>

@@ -683,8 +721,13 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?> */ public function step_2() { check_admin_referer('custom-header-upload', '_wpnonce-custom-header-upload'); - if ( ! current_theme_supports( 'custom-header', 'uploads' ) ) - wp_die( __( 'Cheatin’ uh?' ), 403 ); + if ( ! current_theme_supports( 'custom-header', 'uploads' ) ) { + wp_die( + '

' . __( 'Cheatin’ uh?' ) . '

' . + '

' . __( 'The current theme does not support uploading a custom header image.' ) . '

', + 403 + ); + } if ( empty( $_POST ) && isset( $_GET['file'] ) ) { $attachment_id = absint( $_GET['file'] ); @@ -762,7 +805,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>

- +
@@ -830,15 +873,27 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?> * Display third step of custom header image page. * * @since 2.1.0 + * @since 4.4.0 Switched to using wp_get_attachment_url() instead of the guid + * for retrieving the header image URL. */ public function step_3() { check_admin_referer( 'custom-header-crop-image' ); - if ( ! current_theme_supports( 'custom-header', 'uploads' ) ) - wp_die( __( 'Cheatin’ uh?' ), 403 ); + if ( ! current_theme_supports( 'custom-header', 'uploads' ) ) { + wp_die( + '

' . __( 'Cheatin’ uh?' ) . '

' . + '

' . __( 'The current theme does not support uploading a custom header image.' ) . '

', + 403 + ); + } - if ( ! empty( $_POST['skip-cropping'] ) && ! ( current_theme_supports( 'custom-header', 'flex-height' ) || current_theme_supports( 'custom-header', 'flex-width' ) ) ) - wp_die( __( 'Cheatin’ uh?' ), 403 ); + if ( ! empty( $_POST['skip-cropping'] ) && ! ( current_theme_supports( 'custom-header', 'flex-height' ) || current_theme_supports( 'custom-header', 'flex-width' ) ) ) { + wp_die( + '

' . __( 'Cheatin’ uh?' ) . '

' . + '

' . __( 'The current theme does not support a flexible sized header image.' ) . '

', + 403 + ); + } if ( $_POST['oitar'] > 1 ) { $_POST['x1'] = $_POST['x1'] * $_POST['oitar']; @@ -878,7 +933,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?> // Update the attachment $attachment_id = $this->insert_attachment( $object, $cropped ); - $url = $object['guid']; + $url = wp_get_attachment_url( $attachment_id ); $this->set_header_image( compact( 'url', 'attachment_id', 'width', 'height' ) ); // Cleanup. @@ -949,15 +1004,13 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?> * Choose a header image, selected from existing uploaded and default headers, * or provide an array of uploaded header data (either new, or from media library). * + * @since 3.4.0 + * * @param mixed $choice Which header image to select. Allows for values of 'random-default-image', * for randomly cycling among the default images; 'random-uploaded-image', for randomly cycling * among the uploaded images; the key of a default image registered for that theme; and - * the key of an image uploaded for that theme (the basename of the URL). + * the key of an image uploaded for that theme (the attachment ID of the image). * Or an array of arguments: attachment_id, url, width, height. All are required. - * - * @since 3.4.0 - * - * @param array|object|string $choice */ final public function set_header_image( $choice ) { if ( is_array( $choice ) || is_object( $choice ) ) { @@ -1101,7 +1154,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?> */ final public function create_attachment_object( $cropped, $parent_attachment_id ) { $parent = get_post( $parent_attachment_id ); - $parent_url = $parent->guid; + $parent_url = wp_get_attachment_url( $parent->ID ); $url = str_replace( basename( $parent_url ), basename( $cropped ), $parent_url ); $size = @getimagesize( $cropped ); @@ -1110,7 +1163,6 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?> $object = array( 'ID' => $parent_attachment_id, 'post_title' => basename($cropped), - 'post_content' => $url, 'post_mime_type' => $image_type, 'guid' => $url, 'context' => 'custom-header' @@ -1192,6 +1244,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?> $new_attachment_id = $this->insert_attachment( $object, $cropped ); $object['attachment_id'] = $new_attachment_id; + $object['url'] = wp_get_attachment_url( $new_attachment_id );; $object['width'] = $dimensions['dst_width']; $object['height'] = $dimensions['dst_height'];