Flytta featured image boxen

Dagens, läs veckans, lilla minitips om WordPress handlar om att flytta featured image lådan från sidan till mitten på editorsidan. Nyttigt för att få folk att komma ihåg att använda den eller att skifta fokus.

/* Remove post thumbnail box and reinserts it into main area */
add_action('admin_init', 'add_image_box');
add_action('do_meta_boxes', 'rem_image_box');
function rem_image_box() {
	remove_meta_box( 'postimagediv', 'posttype', 'side' );
}
function add_image_box() {
	add_meta_box('custompostimagediv', __('Custom Image'), 'post_thumbnail_meta_box', 'posttype', 'normal', 'high');
}

Inte så jättesnyggt, men det fungerar. Kom ihåg att byta ut posttype mot din posttype och som vanligt ska koden in i functions.php.

Notera att jag hade lite problem om jag enbart körde admin_init eller enbart körde do_meta_boxes. Kombination fungerade för mig och därför körde jag på det. Finns det snyggare sätt så lyssnar jag.

Regenerate thumbnails räddar dina bilder

Nu har WordPress 2.9 vart ute ett tag och många har hunnit implementera the_post_thumbnail i sina bloggar. Det finns bara ett litet problem. Eller “problem” som det egentligen bör benämnas, allt har en lösning.

Många bilder som är uppladdade tidigare än 2.9, eller rättare sagt innan du aktiverade thumbnails-funktionen kan vägra att fungera. Läs hela inlägget →

Uppföljning på the_post_thumbnail, skapa en egen definition

En liten snabb uppföljning på mitt inlägg om the_post_thumbnail() där jag skrev lite om grunderna i den nya funktionen.

Problemet som finns är om man utvecklar ett tema så finns det ingen chans att veta vad en användare definierar som storlek i sina inställningar. Det finns två sätt att komma ifrån detta, antingen använder du get_option(); där du kan hämta thumbnail_size_w, thumbnail_size_h, medium_size_w, medium_size_h, thumbnail_crop med mera och läsa av och manipulera det som användaren definierat.

Eller så punktmarkerar du en egen storlek och kommer bort från problemet med att användaren troligtvis gör fel i sina inställningar.

Vad du gör är att i functions.php är att du skapar din egna bild-dimension för just miniatyrer. Detta är enkelt och gör att du har större kontroll på bilderna, du kan ange flera olika bildstorlekar som passar in exakt vart du vill ha dem och du slipper problem med användardefinierade storlekar.

[php]add_image_size( namn, width, height, crop);[/php]

Översättning:

[php]add_image_size( ‘min-egna-bild’, 650, 250, true );[/php]

Vad som kommer hända är att du kan, istället för att använda thumbnail/medium/large i funktionen the_post_thumbnail(), kan använda min_egna_bild istället.

Det enda problemet detta ger är att användaren måste mata in en tillräckligt stor bild för att täcka ytan av denna bilden, det vill säga större än 650×250. Men – du får bättre kontroll och ett bättre flöde i ditt tema.

Att använda the_post_thumbnail() i WordPress 2.9

WordPress släpptes för en stund sedan i version 2.9 och med släppet följde en efterlängtad funktion med för de som utvecklar teman, nämligen the_post_thumbnail(). WordPress Codex är dock ganska sena med en bra Wiki-artikel på ämnet så jag tänkte skriva ihop en liten bas-guide till hur den nya funktionen kan användas.

Vad som inte berättas utan krävdes en del sökande för min del är att funktionen först måste aktiveras från functions.php (filen ligger i samma mapp som ditt tema finns i) för att fungera. Anledningen vad jag gissar på är bakåt-kompatibilitet så att funktionen inte används där det inte stöds.

[code lang="php"]add_theme_support( 'post-thumbnails' );

Lägg in raden i functions.php. Stäng dock inte filen än, vi måste också definiera storleken på miniatyr-bilderna. Detta görs med funktionen set_post_thumbnail_size(). Funktionen tar ett par argument int width, int height, bool hardcrop.

[code lang="php"]set_post_thumbnail_size( 250, 150, true );

Använder mig personligen av raden ovan, här sätts höjd och bredd till 250x150 och hardcrop till sant. Hardcrop är dock för mig ett frågetecken än så länge då det inte verkar göra till eller från det jag har testat. Dess egentligen funktion är att beskära bilden snarare än att förändra storleken på den, vilket ger fler valmöjligheter i fråga om höjd/bredd på bilderna man laddar upp än om vi bara skulle förändra dess storlek.

När du experimenterar med storlekarna så rekommenderas det att du installerar tillägget Regenerate thumbnails så du slipper editera om alla miniatyrer i varje inlägg.

För att hämta din miniatyr så måste du först definiera den i en bloggpost, efter att du sparat functions.php och går in i editorn så märker du en ny ruta som heter Post Thumbnail, definiera din miniatyr i den.

Nu är det dags att hämta bilden i vår loop. Jag rekommenderar att du kontrollerar så att inlägget har en minityr först och främst.

[code lang="php"]if ( has_post_thumbnail() ) { the_post_thumbnail(); }

Nu är det dags att utforska the_post_thumbnail(). Funktionen tar en mindre uppsjö med argument, för det första kan du definiera din miniatyr med ett namn: thumbnail, medium, large där thumbnail är standardvärdet i funktionen.

Exempel:

the_post_thumbnail('medium'); hämtar och skriver ut mediumstorleken av bilden.

Är du inte nöjd med standardvärdet av storleken på bilden eller behöver lägga in en css-klass? Funktionen tar även arrays med olika argument.

Ett exempel är:

[code lang="php"]the_post_thumbnail( array(300, 300), array('class' => 'min-class-ett min-class-tva') );

Som du ser så gör jag om miniatyren till en storlek av 300x300 och ger den två klass-attribut, min-klass-ett och min-klass-tva. Du kan även lägga in andra värden som rel, title, alt med mera för större kontroll.