Kuidas lubada SVG failide üleslaadimist WordPressis

WordPress blokeerib SVG failid vaikimisi. Üks koodijupp functions.php-s lahendab selle – koos selgituse ja turvalisuse märkusega.

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õrvalproblee­mi – 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

0+
Lõpetatud projekti
0+
Aktiivset partnerit
0%
Rahulolevaid kliente

Miks valida Hundikuu?

Paindlik arendus

Loome nii kiireid standardlahendusi kui täielikke erilahendusi. Soovid kiirelt valmisdisainile veebilehte või hoopis API integratsioone ja erifunktsioone – me kirjutame koodi, mis töötab.

Kiirus ja SEO

Iga projekt aluseks optimeeritud struktuur ja kiire laadimisaeg. Tehniline SEO pole lisateenus vaid standard – Google ja kasutajad hindavad mõlemat.

Pikaajaline partner

Projekt ei lõpe käivitamisega. Pakume hooldust, jätkuvat tuge ja edasiarendust. Teie veebileht kasvab koos äriga – lisame funktsionaalsust ja optimeerime pidevalt.

Soovid ettevõtet nähtavamaks teha?

Hundikuu muudab teie jalajälje nähtavaks ning aitab sõnumil kaugele kanduda.