56 lines
1.5 KiB
PHP
Executable File
56 lines
1.5 KiB
PHP
Executable File
<?php
|
|
|
|
/** ------------------------------
|
|
ENABLE SVG
|
|
------------------------------*/
|
|
|
|
function dynamiques_allow_svg_upload($mimes)
|
|
{
|
|
// Autoriser SVG pour tous les utilisateurs connectés
|
|
$mimes['svg'] = 'image/svg+xml';
|
|
$mimes['svgz'] = 'image/svg+xml';
|
|
return $mimes;
|
|
}
|
|
add_filter('upload_mimes', 'dynamiques_allow_svg_upload', 10, 1);
|
|
|
|
// Vérifier les permissions utilisateur pour SVG
|
|
function dynamiques_check_svg_permissions($file)
|
|
{
|
|
if ($file['type'] === 'image/svg+xml') {
|
|
// Autoriser pour les administrateurs et éditeurs
|
|
if (current_user_can('upload_files')) {
|
|
return $file;
|
|
} else {
|
|
$file['error'] = 'Vous n\'avez pas les permissions pour uploader des fichiers SVG.';
|
|
}
|
|
}
|
|
return $file;
|
|
}
|
|
add_filter('wp_handle_upload_prefilter', 'dynamiques_check_svg_permissions');
|
|
|
|
// Debug: afficher les types MIME autorisés
|
|
// write_log(get_allowed_mime_types());
|
|
|
|
// Solution alternative : utiliser un hook plus tôt
|
|
function dynamiques_early_svg_support()
|
|
{
|
|
add_filter('upload_mimes', function ($mimes) {
|
|
$mimes['svg'] = 'image/svg+xml';
|
|
$mimes['svgz'] = 'image/svg+xml';
|
|
return $mimes;
|
|
}, 1);
|
|
}
|
|
add_action('init', 'dynamiques_early_svg_support', 1);
|
|
|
|
// Désactiver la vérification stricte des types MIME pour SVG
|
|
function dynamiques_disable_mime_check($data, $file, $filename, $mimes)
|
|
{
|
|
if (pathinfo($filename, PATHINFO_EXTENSION) === 'svg') {
|
|
$data['ext'] = 'svg';
|
|
$data['type'] = 'image/svg+xml';
|
|
$data['proper_filename'] = $filename;
|
|
}
|
|
return $data;
|
|
}
|
|
add_filter('wp_check_filetype_and_ext', 'dynamiques_disable_mime_check', 10, 4);
|