Как мне включить страницу настройки темы, чтобы принимать 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 специально для страницы "Настройка темы"?
1 answers
Вам также потребуется добавить "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' ),
)
)
);