WordPress.org

Make WordPress Core

Ticket #36255: 36255.2.diff

File 36255.2.diff, 2.6 KB (added by obenland, 6 years ago)
  • src/wp-includes/class-wp-customize-manager.php

     
    18301830         * Register some default controls.
    18311831         *
    18321832         * @since 3.4.0
     1833         *
     1834         * @global array $_wp_additional_image_sizes
    18331835         */
    18341836        public function register_controls() {
    18351837
     
    19591961                        'transport'      => 'postMessage',
    19601962                ) );
    19611963
    1962                 $this->add_control( new WP_Customize_Media_Control( $this, 'custom_logo', array(
    1963                         'label'    => __( 'Logo' ),
    1964                         'section'  => 'title_tagline',
    1965                         'priority' => 8,
    1966                         'mime_type' => 'image',
     1964                // Get custom logo settings and extend defaults with it.
     1965                $custom_logo_args         = get_theme_support( 'custom-logo' );
     1966                $custom_logo_args         = (array) $custom_logo_args[0];
     1967                $custom_logo_control_args = array(
     1968                        'width'       => false,
     1969                        'height'      => false,
     1970                        'flex_width'  => true,
     1971                        'flex_height' => true,
     1972                );
     1973                $custom_logo_control_args = wp_parse_args( array_intersect_key( $custom_logo_args, $custom_logo_control_args ), $custom_logo_control_args );
     1974
     1975                // If no width/height were defined but there is a custom image size, use that.
     1976                if ( ! empty( $custom_logo_args['size'] ) && has_image_size( $custom_logo_args['size'] ) && ! $custom_logo_control_args['width'] && ! $custom_logo_control_args['height'] ) {
     1977                        global $_wp_additional_image_sizes;
     1978                        $custom_logo_size = $custom_logo_args['size'];
     1979
     1980                        $custom_logo_control_args['width']       = $_wp_additional_image_sizes[ $custom_logo_size ]['width'];
     1981                        $custom_logo_control_args['height']      = $_wp_additional_image_sizes[ $custom_logo_size ]['height'];
     1982                        $custom_logo_control_args['flex_width']  = empty( $_wp_additional_image_sizes[ $custom_logo_size ]['crop'] );
     1983                        $custom_logo_control_args['flex_height'] = empty( $_wp_additional_image_sizes[ $custom_logo_size ]['crop'] );
     1984                }
     1985
     1986                $custom_logo_control_args = wp_parse_args( $custom_logo_control_args, array(
     1987                        'label'         => __( 'Logo' ),
     1988                        'section'       => 'title_tagline',
     1989                        'priority'      => 8,
    19671990                        'button_labels' => array(
    19681991                                'select'       => __( 'Select logo' ),
    19691992                                'change'       => __( 'Change logo' ),
     
    19731996                                'frame_title'  => __( 'Select logo' ),
    19741997                                'frame_button' => __( 'Choose logo' ),
    19751998                        ),
    1976                 ) ) );
     1999                ) );
     2000
     2001                $this->add_control( new WP_Customize_Cropped_Image_Control( $this, 'custom_logo', $custom_logo_control_args ) );
    19772002
    19782003                $this->selective_refresh->add_partial( 'custom_logo', array(
    19792004                        'settings'            => array( 'custom_logo' ),