Få WordPress til å spille bra med responsive bilder

Forfatter: Louise Ward
Opprettelsesdato: 6 Februar 2021
Oppdater Dato: 18 Kan 2024
Anonim
Få WordPress til å spille bra med responsive bilder - Kreativ
Få WordPress til å spille bra med responsive bilder - Kreativ

Innhold

  • Kunnskap som trengs: Grunnleggende PHP og CSS
  • Krever: WordPress-installasjon, tekstredigerer du velger
  • Prosjekt tid: 10 minutter

Hvis du abonnerer på den trykte versjonen av .net magazine (hvis ikke, hvorfor ikke !?), vil du ha sett at månedens utgave inneholder en utmerket artikkel om "Responsive Design with WordPress".

I artikkelen skisserer forfatter Jesse Friedman en mengde veldig nyttige teknikker for å få mest mulig ut av og overvinne iboende WordPress-funksjonalitet for å produsere et virkelig effektivt responsivt nettsted. Hvis du tenker å produsere et responsivt nettsted med WordPress, bør du definitivt hente en kopi av artikkelen hans. Det er en må-lese.

Etter å ha nylig gjenoppbygd min personlige blogg på WordPress ved hjelp av en responsiv, mobil-første tilnærming, var jeg kjent med noen av teknikkene som er dekket i artikkelen. Imidlertid var det eneste som virkelig skiller seg ut for meg, Jesses tilnærming til å muliggjøre flytende bilder via jQuery.


Problemet med WordPress og "flytende bilder"

Som jeg er sikker på at dere alle er klar over, krever 'flytende bilder' - som bruker maksimal bredde: 100% - at bildene ikke har noen fast bredde eller høyde for å kunne skalere til størrelsen på containeren. Dessverre beregner WordPress automatisk dimensjonene til bildene som genereres fra mediebiblioteket og legger til tilsvarende bredde- og høydeattributter til alle img> -koder.

Dette er flott for gjengivelse av sider, men det kaster a gigantisk nøkkel i verk når det gjelder å lage responsive oppsett, da bildedimensjoner ikke lenger er begrenset til størrelsen på beholderen.

Det er et problem.

Ikke-jQuery-løsningen

I sin artikkel foreslår Jesse ’å bruke jQuery for å fjerne attributt for bredde og høyde fra alle img> -koder på siden når den er lastet inn. Dette fungerer absolutt, men når jeg bygger nettstedet mitt, likte jeg ikke ideen om å stole på JavaScript for å oppnå dette, spesielt hvis det var mange bilder på den aktuelle siden.


Dette var hvor WordPress-filtre kom til unnsetning.

WordPress-kodeksen definerer et filter som:

"... kroker som WordPress lanserer for å endre tekst av forskjellige typer før du legger den til databasen eller sender den til nettleserskjermen."

Som det viser seg er dette akkurat det vi trenger. Ved å sette opp et filter som skal kjøres på alle bilder som den siste handlingen før de gjengis på siden, kan vi bruke PHP til å fjerne attributtene for bredde og høyde og derved omgå behovet for (potensielt) dyr DOM-manipulering via JavaScript.

Koden

  1. /**
  2. * RESPONSIVE BILDEFUNKSJONER
  3. */
  4. add_filter (’post_thumbnail_html’, ’remove_thumbnail_dimensions’, 10);
  5. add_filter (’image_send_to_editor’, ’remove_thumbnail_dimensions’, 10);
  6. funksjon remove_thumbnail_dimensions ($ html)
  7. $ html = preg_replace (’/ (bredde

I koden ovenfor legger vi til to filtre ved hjelp av add_filter-funksjonen. Det første argumentet er filteret vi ønsker å koble til, og det andre spesifiserer funksjonen vi vil kjøre når filteret kalles.


I koden vår kobler vi til to uklare funksjoner:

  1. post_miniatyrbilde_html - bilder hentet med post_miniatyrbilde ()
  2. image_send_to_editor - bilder lagt til redaktøren

Vi bruker deretter et vanlig uttrykk for å fjerne både bredde- og høydeattributtene fra bildekodene. Nå når bildene våre sendes til nettleseren, kan de være fullstendig 'flytende' akkurat som hr. Marcotte sa til oss at de burde.

En tilståelse

Jeg må innrømme at jeg hadde hatt ideen om å bruke add_filter for å fjerne attributter som jeg ikke kunne finne ut de riktige WordPress-filtrene jeg kunne koble meg til i løpet av livet.

Etter mye søk kom jeg til slutt over dette ekstremt hjelpsomme innlegget på Wordpress Stack Exchange av Nathaniel Taintor, som ga informasjonen om de to filtrene jeg trengte.

Advarsler

Så vidt jeg vet er den eneste store ulempen med denne tilnærmingen at den ikke fjerner bredde- og høydeattributtene fra alle bildene på nettstedet ditt. Jeg fant dette å være et problem, spesifikt med Gravatar-bildene WordPress bruker i kommentarer.

Hvis noen har en løsning på dette problemet, kan du legge igjen en kommentar slik at vi alle kan dra nytte av det.

Jeg håper dette har vært nyttig og vist et alternativ til å stole på JavaScript for å implementere "flytende bilder" på WordPress-nettsteder.

Ord: David Smith

Dave Smith er frontend designer basert i nærheten av den vakre byen Bath, Storbritannia. Når han ikke jobber med nye og spennende webprosjekter, kan han bli spilt på trompet i alt fra Big Band jazzgrupper til Symfoniorkestre. Du kan ta igjen Dave på Twitter som @get_dave.

Få Popularitet
Hvordan sette datamaskinstart fra USB-stasjon
Les Mer

Hvordan sette datamaskinstart fra USB-stasjon

Hvi du etter datamakintart fra UB-flahtajon, kan du tilbaketille brukerpaordet hvi du er i vankeligheter med å glemme paordet. Her vil vi introduere to måter å lære deg hvordan du ...
Topp 15 effektive Excel-passordgjenopprettingsverktøy
Les Mer

Topp 15 effektive Excel-passordgjenopprettingsverktøy

Microoft Excel lar en bruker angi et paord til arkene de vil ikre, men denne kule funkjonen blir til et mareritt når en bruker glemmer paordet. Gjenoppretting av paord i Excel er ikke å enke...
Topp 2 løsninger for å opprette en tilbakestillingsdiskett for passord på Windows 10
Les Mer

Topp 2 løsninger for å opprette en tilbakestillingsdiskett for passord på Windows 10

Hvi du er en av Window 10-brukerne om er vant til å angi et påloggingpaord for datamakinen, kan du ha frykten for å glemme paordet en dag. Til lag en dik for tilbaketilling av paord i W...