Sida 1 av 1

WP Image sizes metadata

InläggPostat: 2013-01-22 22.50
av jonas
Nu har jag spenderat ca 4 timmar med att försöka få bildstorlekarna i WP att fungera.

Av någon anledning så har metadatan för de olika bildstorlekarna delvis försvunnit. De som ligger i _wp_attachment_metadata i databasen. Jag har prövat ett antal olika plugins för att bygga om bilderna, men får inte någon effekt av det.

Resultatet är att de flesta bilder som ska visas i sidhuvudet istället visas i mindre version i högerkanten, så som exempelvis här: http://aktivdemokrati.se/ordlista/2011/demokrati/

Har även prövat att deaktivera de flesta plugins, inklusive jetpack.

Re: WP Image sizes metadata

InläggPostat: 2013-01-23 19.13
av Roger
Den där bilden "800px-Acropolis_of_Athens_01361-300x183.jpg" är ju liten (300 * 183 pixlar) och HTML-koden säger också att den ska visas som width="300" height="183". Har du provat att uppdatera sidan så att bilden visas som full och inte som thumbnail? Då kanske den väljer ut fullbilden "800px-Acropolis_of_Athens_01361.jpg" istället? Vad är fildatumet på "800px-Acropolis_of_Athens_01361-300x183.jpg"? Vilka andra filer ändrades då? Kanske en ny Wordpress-version installerades då?

Re: WP Image sizes metadata

InläggPostat: 2013-01-23 19.54
av jonas
Skulle ta väldigt massa text att förklara alla detaljer kring det här. Jag kan tänka mig göra det ifall du vill dyka ned i koden och databasen.

Men lite kort: Varje bild finns normalt i fem storlekar. Original, stor, mellan, tumme och post-thumbnail. Dessa är definierade och funkar så långt att bilderna sparas i dessa storlekar. Dock så har på något sätt plugins jag användt för att skala om bilder när definitionerna för dessa storlekar uppdaterats, gjort att metadatan för bilden, lagrad i wp_postmeta, försvunnit för några eller alla av storlekarna.

Jag har inte brytt mig om att avkoda metadatafältet, förrutom att lägga in radbrytningar. Tillräckligt läsbart ändå. Här är en sådan där tre av de fem storlekarna är kvar:

Kod: Markera allt
a:6:
{
s:5:"width";
s:3:"800";
s:6:"height";
s:3:"600";
s:14:"hwstring_small";
s:23:"height='96' width='128'";
s:4:"file";
s:27:"2010/12/149562_1522-800.jpg";
s:5:"sizes";
a:2:{
s:9:"thumbnail";
a:3:{
s:4:"file";
s:27:"149562_1522-800-150x150.jpg";
s:5:"width";
s:3:"150";
s:6:"height";
s:3:"150";
}
s:6:"medium";
a:3:{
s:4:"file";
s:27:"149562_1522-800-300x225.jpg";
s:5:"width";
s:3:"300";
s:6:"height";
s:3:"225";
}
}
s:10:"image_meta";
a:10:{
s:8:"aperture";
s:3:"2.8";
s:6:"credit";
s:0:"";
s:6:"camera";
s:12:"FinePix 3800";
s:7:"caption";
s:0:"";
s:17:"created_timestamp";
s:10:"1087235175";
s:9:"copyright";
s:0:"";
s:12:"focal_length";
s:1:"6";
s:3:"iso";
s:3:"100";
s:13:"shutter_speed";
s:17:"0.066666666666667";
s:5:"title";
s:0:"";
}
}


Och här är SAMMA post en stund senare när jag kört några variationer på thumbnail rebuild:

Kod: Markera allt
a:5:{s:5:"width";
s:3:"800";
s:6:"height";
s:3:"600";
s:14:"hwstring_small";
s:23:"height='96' width='128'";
s:4:"file";
s:27:"2010/12/149562_1522-800.jpg";
s:10:"image_meta";
a:10:{s:8:"aperture";
s:3:"2.8";
s:6:"credit";
s:0:"";
s:6:"camera";
s:12:"FinePix 3800";
s:7:"caption";
s:0:"";
s:17:"created_timestamp";
s:10:"1087235175";
s:9:"copyright";
s:0:"";
s:12:"focal_length";
s:1:"6";
s:3:"iso";
s:3:"100";
s:13:"shutter_speed";
s:17:"0.066666666666667";
s:5:"title";
s:0:"";
}}


Som du ser så har metadatan för alla storlekar utom originalstorlek försvunnit.

Mallen för sidan går ut på att plocka ut post-thumbnail och OM bredden är minst 691 (vilket är satt som storlek för post-thumbnail) så visas den i överkanten, så som du ser på flera av sidorna. Om den inte är det så visas den istället i mellan-storleken (satt till bredd 300) i högerkanten i början av artikeln.

Av någon anledning så verkar Wordpress falla tillbaka (i avsaknad av metadata) att räkna ut storleken utan CROP, vilket är en flagga för att säga att den klipper bilden för att få rätt proportioner.

Originalet för bilden ovan är 800x600 och den borde, som den gjort tidigare, skalan det 800 till 691 och sen klippa lika mycket ovan och nedan för att få höjden till 250. Istället så behandlas bilden utan CROP, så att 600 skalas ned till 250, vilket resulterar i att bredden blir 333. Och då 333 är mindre än 691 så används mellan-storleken istället för post-thumbnail.

Detta trots att själva filerna har förberetts på rätt sätt.

Så det verkar vara en kombination av bugg i wordpress och någon slags bugg i koden som skriver om metadatan i de rebuild-plugins jag användt. Den jag användt mest är https://www.breiti.cc/wordpress/ajax-thumbnail-rebuild/ och övriga har jag installerat och testat på min lokala kopia i försök att reparera databasen.

Re: WP Image sizes metadata

InläggPostat: 2013-01-27 20.28
av jonas
Bilderna funkade som de skulle i WP 3.5, så nu uppgraderar jag.