
WordPress blokeerib vaikimisi SVG failide üleslaadimise. Proovid logo üles laadida, saad veateate. Proovid ikooni lisada – sama lugu. Turvaline vaikimisi seadistus, aga praktikas tüütu piirang, millel on lihtne lahendus.
SVG (Scalable Vector Graphics) on vektorfail, mis skaleerub iga ekraani suurusega ilma kvaliteeti kaotamata. Logo Retina ekraanil, ikoon mobiilis, illustratsioon suures bänneris – SVG näeb alati terav välja, sest see on matemaatiline kirjeldus, mitte pikslite kogum. Lisaks on SVG failid väikesed, mis tähendab kiiremat laadimist.
Miks WordPress seda blokeerib? SVG on XML-põhine formaat, mis võib teoreetiliselt sisaldada pahatahtlikku koodi. Seetõttu on vaikimisi üleslaadimise keeld olemas – mõistlik ettevaatusabinõu avalikul saidil, kus kasutajad saavad faile üles laadida. Aga kui haldad ise saiti ja tead, mida üles laadid, on piirang lihtsalt takistus.
Lahendus – üks funktsioon functions.php-s
Lisa järgmine kood oma child theme’i functions.php faili:
// Luba SVG failide üleslaadimine
function hundikuu_allow_svg_upload( $mimes ) {
$mimes['svg'] = 'image/svg+xml';
$mimes['svgz'] = 'image/svg+xml';
return $mimes;
}
add_filter( 'upload_mimes', 'hundikuu_allow_svg_upload' );
// Paranda SVG eelvaade meediaraamatukogus
function hundikuu_fix_svg_preview( $response, $attachment ) {
if ( $response['type'] === 'image' && $response['subtype'] === 'svg+xml' ) {
$attachment_url = wp_get_attachment_url( $attachment->ID );
if ( $attachment_url ) {
$response['sizes'] = array(
'full' => array(
'url' => $attachment_url,
'width' => 800,
'height' => 800,
'orientation' => 'landscape',
),
);
}
}
return $response;
}
add_filter( 'wp_prepare_attachment_for_js', 'hundikuu_fix_svg_preview', 10, 2 );
Salvesta, laadi leht uuesti – SVG failid on nüüd lubatud.
Miks kaks funktsiooni?
Esimene funktsioon (hundikuu_allow_svg_upload) lisab SVG MIME tüübi WordPressi lubatud failide nimekirja. See on minimaalne muudatus, mis avab üleslaadimise.
Teine funktsioon (hundikuu_fix_svg_preview) lahendab kõrvalprobleemi – ilma selleta kuvatakse SVG failid meediaraamatukogus katkise eelvaatena. Funktsioon annab WordPressile teada, kuidas SVG eelvaadet kuvada. Tehniline detail, aga ilma selleta näeb admin kasutajale kohmakas välja.
Kust koodi lisada
Alateema (child theme) functions.php on õige koht – mitte põhiteema functions.php, sest teema uuendus kirjutab selle üle. Kui alateemat pole, on alternatiiv väike mu-plugin (wp-content/mu-plugins/ kaust).
Kui kasutad Code Snippets pluginat, saab koodi lisada ka sealt ilma faile puutumata – mugav lahendus neile, kes eelistavad admin paneelist hallata.
Turvalisuse märkus
See lahendus sobib saitidele, kus SVG faile laadivad üles ainult usaldusväärsed administraatorid. Kui saidil on kasutajaregistreerimine ja võõrad kasutajad saavad faile üles laadida, tasub kaaluda täiendavat SVG saniteerimist – näiteks Safe SVG plugin teeb seda automaatselt ja on hea alternatiiv käsitsi koodile.
Vajad professionaalset tuge veebilehe loomisel? 🔗 hundikuu.ee/teenus/kodulehed-ja-veebipoed