it-roy-ru.com

Как включить страницу настройки темы для приема svg?

В настоящее время я работаю над темой, которая позволяет пользователю загружать логотип через страницу настройки темы.

Я хочу, чтобы пользователь мог загружать SVG в качестве логотипа.

Wordpress не позволяет загружать SVG по умолчанию. Поэтому я использовал фрагмент кода, чтобы включить SVG в загрузчике мультимедиа.

function cc_mime_types( $mimes ){
    $mimes['svg'] = 'image/svg+xml';
    return $mimes;
}
add_filter( 'upload_mimes', 'cc_mime_types' );

Я подумал, что это также позволит мне загружать SVG через страницу настройки темы (customize.php).

Это не похоже на работу.

Когда я загружаю svg через обычный медиа-загрузчик, файл загружается успешно. Когда я пытаюсь загрузить svg через загрузчик логотипа на странице настройки темы, ничего не происходит. Даже не ошибка.

Мой код для включения загрузки логотипа через страницу настройки темы:

function themeslug_theme_customizer( $wp_customize ) {
    $wp_customize->add_section( 'themeslug_logo_section' , array(    
    'title'       => __( 'Logo', 'themeslug' ),
    'priority'    => 30,
    'description' => 'Upload a logo to replace the default site name and description     in the header',
) );
$wp_customize->add_setting( 'themeslug_logo' );
$wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize,     'themeslug_logo', array(
    'label'    => __( 'Logo', 'themeslug' ),
    'section'  => 'themeslug_logo_section',
    'settings' => 'themeslug_logo',
) ) );
}
add_action('customize_register', 'themeslug_theme_customizer');

Кто-нибудь знает, как включить загрузку SVG специально для страницы настройки темы?

2
user25312

Вам также необходимо добавить "svg" в список допустимых расширений в WP_Customize_Image_Control:

$wp_customize->add_control(
    new WP_Customize_Image_Control(
        $wp_customize,
        'themeslug_logo',
        array(
            'label'      => __( 'Logo', 'themeslug' ),
            'section'    => 'themeslug_logo_section',
            'settings'   => 'themeslug_logo',
            'extensions' => array( 'jpg', 'jpeg', 'gif', 'png', 'svg' ),
        )
    )
);
4
TheDeadMedic