Je travaille actuellement sur un thème qui permet à l'utilisateur de télécharger un logo via la page de thème personnalisé.
Je veux que l'utilisateur puisse télécharger un SVG en tant que logo.
Wordpress n'autorise pas le téléchargement de fichiers SVG par défaut. J'ai donc utilisé un extrait de code pour activer SVG dans le téléchargeur de média.
function cc_mime_types( $mimes ){
$mimes['svg'] = 'image/svg+xml';
return $mimes;
}
add_filter( 'upload_mimes', 'cc_mime_types' );
Je pensais que cela me permettrait également de télécharger des SVG via la page de personnalisation du thème (customize.php
).
Cela ne semble pas fonctionner.
Lorsque je télécharge un fichier svg via le programme de téléchargement de média normal, le fichier est transféré avec succès. Lorsque j'essaie de télécharger un fichier svg via mon outil de téléchargement de logo sur la page de thème personnalisé, rien ne se passe. Pas même une erreur.
Mon code pour activer le téléchargement du logo via la page de thème de personnalisation:
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');
Est-ce que quelqu'un sait comment activer le téléchargement SVG spécifiquement pour la page de thème personnalisé?
Vous devrez également ajouter "svg" à la liste des extensions valides dans 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' ),
)
)
);