WordPress Attachment Metadata selitettynä
WordPressin mediakirjasto näyttää ulospäin yksinkertaiselta: käyttäjä lataa kuvan, PDF-tiedoston tai muun tiedoston ja WordPress tallentaa sen mediakirjastoon. Taustalla tapahtuu kuitenkin huomattavasti enemmän.
Jokaisesta Media Libraryyn lisätystä tiedostosta muodostuu attachment, eli WordPressin sisältöobjekti. Attachmentiin voidaan liittää myös metadataa, joka kertoo esimerkiksi kuvan fyysiset mitat, tiedostopolun, eri kuvakoot ja muita tiedostoon liittyviä teknisiä tietoja.
Tätä kokonaisuutta kutsutaan Attachment Metadata -dataksi.
Mikä on WordPress Attachment?
WordPress käsittelee mediakirjaston tiedostoja omana post-tyyppinään.
Attachment on käytännössä WordPressin attachment-post type.
Se voi edustaa esimerkiksi:
- JPEG-kuvaa
- PNG-kuvaa
- WebP-kuvaa
- AVIF-kuvaa
- PDF-tiedostoa
- videota
- äänitiedostoa
- muuta ladattavaa tiedostoa
Attachmentilla on tavallisen WordPress-sisällön tapaan oma ID, otsikko, päivämäärä ja muita ominaisuuksia.
Mitä Attachment Metadata sisältää?
Attachment Metadata sisältää tiedostoon liittyviä teknisiä tietoja.
Kuvan tapauksessa metadata voi sisältää esimerkiksi:
- alkuperäisen tiedoston
- tiedostopolun
- kuvan leveyden
- kuvan korkeuden
- luodut thumbnail-versiot
- eri kuvakokojen tiedot
- EXIF-tietoja tietyissä tilanteissa
- muita kuvatiedostoon liittyviä arvoja
Metadata tallennetaan WordPressin post metadata -järjestelmään.
_wp_attachment_metadata
Yksi tärkeimmistä attachment-metadatan avaimista on:
_wp_attachment_metadata
WordPress käyttää sitä erityisesti kuvatiedostojen teknisten tietojen tallentamiseen.
Sen sisältö voi näyttää rakenteellisesti esimerkiksi tältä:
Tämä ei ole kuitenkaan asia, jota kannattaa käsitellä kovakoodattuna rakenteena ilman WordPressin omien funktioiden tuntemista.
Miksi metadataa tarvitaan?
WordPressin pitää tietää, mitä tiedostolle on tapahtunut sen jälkeen, kun käyttäjä latasi sen.
Esimerkiksi alkuperäinen kuva voi olla:
1920 × 1080 px
WordPress voi luoda siitä automaattisesti useita versioita:
- thumbnail
- medium
- medium_large
- large
- teemojen omat kuvakoot
- lisäosien määrittämät kuvakoot
Attachment Metadata kertoo WordPressille, mitä versioita tiedostosta on olemassa ja missä ne sijaitsevat.
Kuvakoot ja metadata
Kun WordPress käsittelee kuvan, se voi luoda useita fyysisiä tiedostoja.
Esimerkiksi:
Metadata auttaa WordPressiä yhdistämään nämä tiedostot alkuperäiseen attachmentiin.
Tämän ansiosta WordPress voi valita sopivan kuvan eri käyttötarkoituksiin.
Responsive Images
Attachment Metadata liittyy myös WordPressin responsiiviseen kuvien käsittelyyn.
Kun selaimelle tarjotaan esimerkiksi srcset– ja sizes-tietoja, WordPress pystyy hyödyntämään mediakirjastoon luotuja eri kuvakokoja.
Tämän ansiosta mobiililaitteelle ei tarvitse välttämättä ladata alkuperäistä suurta kuvaa.
Hyvin hallittu kuvametadata voi siis vaikuttaa myös sivuston suorituskykyyn.
Metadata API
Attachment Metadataa käsitellään WordPressin Metadata API:n kautta.
Keskeisiä funktioita ovat esimerkiksi:
Attachmentin teknistä metadataa varten käytetään kuitenkin usein WordPressin omia attachment-funktioita sen sijaan, että _wp_attachment_metadata-rakennetta muokattaisiin suoraan.
wp_get_attachment_metadata()
Kun attachmentin metadata halutaan hakea, WordPress tarjoaa tähän oman funktion:
Esimerkiksi kuvan mitat voidaan hakea:
Tämä on turvallisempi lähestymistapa kuin metadata-rakenteen käsittely suoraan tietokannasta.
wp_update_attachment_metadata()
Metadataa voidaan myös päivittää WordPressin tarjoamalla funktiolla:
Tätä tarvitaan erityisesti silloin, kun attachmentin metadata muodostetaan tai päivitetään ohjelmallisesti.
Suora tietokantapäivitys ei yleensä ole hyvä ratkaisu.
Attachment Metadata ja kuvan uudelleenkäsittely
Jos WordPressin kuvakoot muuttuvat, olemassa olevien kuvien metadata ei automaattisesti tarkoita, että kaikki uudet fyysiset kuvaversiot ovat olemassa.
Esimerkiksi teema voi lisätä uuden kuvakoon:
Vanhoille kuville tämä ei välttämättä tarkoita, että hero-large-versio syntyy automaattisesti.
Siksi suurissa sivustoissa voidaan tarvita kuvien uudelleengenerointia.
Metadata ja Image Regeneration
Kuvakokojen uudelleenluonti on tärkeä osa WordPressin ylläpitoa.
Tyypillinen tilanne on:
- sivustolle lisätään uusi kuvakoko
- uudet kuvat saavat uuden koon
- vanhoilta kuvilta koko puuttuu
- kuvat generoidaan uudelleen
- attachment metadata päivitetään
Jos metadata ja fyysiset tiedostot eivät vastaa toisiaan, sivusto voi yrittää käyttää tiedostoa, jota palvelimella ei enää ole.
Attachment Metadata ja migraatiot
Mediaan liittyvä metadata aiheuttaa usein ongelmia WordPress-migraatioissa.
Kun attachment siirretään toiseen ympäristöön, pitää huomioida:
- attachment ID
- tiedostopolku
- alkuperäinen tiedosto
- kuvakoot
- metadata
- alt-teksti
- kuvateksti
- mahdolliset EXIF-tiedot
Pelkkä tietokantatietue ei riitä, jos fyysiset tiedostot puuttuvat.
WXR ja Attachment Metadata
WordPressin WXR-vienti voi sisältää attachment-objekteihin liittyviä tietoja.
Tämä ei kuitenkaan tarkoita, että WXR yksinään olisi täydellinen mediakirjaston varmuuskopio.
Migraatiossa kannattaa varmistaa erikseen:
- alkuperäiset tiedostot
- generoidut kuvakoot
- attachment-tietueet
- metadata
- tiedostopolut
Näiden kaikkien pitää vastata toisiaan.
Attachment Metadata ja WooCommerce
WooCommerce käyttää WordPressin mediajärjestelmää laajasti.
Tuotteilla voi olla:
- pääkuva
- galleriakuvia
- variaatioiden kuvia
- eri kuvakokoja
Jos attachment metadata on rikki tai puutteellinen, ongelmat voivat näkyä esimerkiksi tuotegallerioissa tai responsiivisissa kuvissa.
Siksi mediakirjaston metadata on myös verkkokaupan tekninen riippuvuus.
Attachment Metadata ja suorituskyky
Metadata ei itsessään tee sivustosta nopeaa, mutta sen avulla WordPress voi hyödyntää oikeita kuvakokoja.
Hyvä mediaprosessi mahdollistaa:
- pienemmät kuvat
- responsiiviset kuvat
- pienemmän tiedonsiirron
- nopeamman latauksen
- paremman mobiilikokemuksen
Siksi attachment-metadatan eheys on osa kuvien optimointia.
Yleisimmät ongelmat
Attachment Metadataan liittyvät ongelmat näkyvät usein käytännössä rikkinäisinä kuvina tai puuttuvina kuvakokoina.
Tyypillisiä syitä ovat:
- tiedosto on poistettu palvelimelta
- metadata ei vastaa fyysisiä tiedostoja
- migraatio on ollut puutteellinen
- kuvakokoja on muutettu
- thumbnailit ovat jääneet generoimatta
- lisäosa on muuttanut mediaa väärin
- tiedostojen käyttöoikeudet ovat väärät
Ongelmaa ei kannata korjata vain muuttamalla metadataa tietokannassa. Ensin pitää selvittää, vastaavatko metadata ja palvelimella olevat tiedostot toisiaan.
Suora tietokantamuokkaus kannattaa välttää
Attachment Metadata voi näyttää houkuttelevalta kohteelta suoraan SQL-kyselyille, mutta tämä on yleensä huono lähtökohta.
Parempi vaihtoehto on käyttää WordPressin API:a:
ja tarvittaessa muita WordPressin mediafunktioita.
Näin WordPressin oma logiikka säilyy mukana.
Attachment Metadataa käsittelevän koodin testaus
Ohjelmallinen median käsittely kannattaa testata ainakin seuraavilla tiedostotyypeillä:
- JPEG
- PNG
- WebP
- SVG, jos projekti sitä tukee
Lisäksi kannattaa testata:
- isot kuvat
- pienet kuvat
- läpinäkyvät kuvat
- kuvat ilman EXIF-tietoja
- kuvat useilla eri kuvakoilla
Näin ratkaisu ei perustu vain yhteen testikuvaan.
Parhaat käytännöt
Attachment Metadataa käsiteltäessä kannattaa:
- käytä WordPressin omia attachment-funktioita
- älä muokkaa metadataa suoraan SQL:llä ilman erityistä syytä
- varmista fyysisten tiedostojen olemassaolo
- pidä kuvakoot hallittuina
- testaa migraatiot staging-ympäristössä
- regeneroi kuvakoot tarvittaessa
- huomioi responsive images
- ota varmuuskopiot ennen massamuutoksia
Erityisesti suurissa mediakirjastoissa automaattinen tarkistus voi säästää paljon ylläpitotyötä.
Milloin Attachment Metadataan kannattaa perehtyä?
Attachment Metadata tulee vastaan erityisesti silloin, kun kehitetään:
- mukautettuja WordPress-teemoja
- mediakirjastoa käsitteleviä lisäosia
- WooCommerce-ratkaisuja
- kuvien optimointijärjestelmiä
- migraatioita
- Headless WordPress -ratkaisuja
- automaattisia kuvaprosesseja
Tavallisessa sisällöntuotannossa metadata toimii taustalla, mutta kehittäjälle sen ymmärtäminen on tärkeää.
Yhteenveto
WordPress Attachment Metadata on mediakirjaston taustalla toimiva tietorakenne, jonka avulla WordPress tietää, miten ladattua tiedostoa ja siitä muodostettuja versioita käsitellään. Erityisesti kuvien kohdalla metadata sisältää tärkeää tietoa alkuperäisestä tiedostosta, mitoista ja generoiduista kuvakoista.
Attachment Metadata kannattaa nähdä osana laajempaa kokonaisuutta, jossa attachment-tietue, metadata ja palvelimella olevat fyysiset tiedostot muodostavat yhden kokonaisuuden.
Kun näitä käsitellään WordPressin omien rajapintojen kautta ja migraatiot sekä kuvien uudelleengenerointi tehdään hallitusti, mediakirjasto pysyy ehjänä myös suurissa ja pitkäikäisissä WordPress-projekteissa.