Billeder i indlæg: den theme-uafhængige metode

Det er så farverigt med et billede til hvert eller næsten hvert indlæg. Men man skal tænke sig godt om inden man bare kaster sig ud i at indsætte billeder i alle sine indlæg. I hvert fald hvis man tænker langtsigtet, for det kan gå hen og blive et uoverskueligt problem på et tidspunkt.

NB: Siden jeg skrev denne artikel er der kommet nye funktioner i WordPress som overflødiggør de teknikker jeg præsenterer i denne artikel. Jeg fraråder derfor at følge dem.

Og hvorfor så det? Jo, lad os sige at du gennem en periode på et halvt år skriver to indlæg om ugen. Det er cirka 50 indlæg. Måden hvorpå du har indsat de billeder i dine indlæg, afhænger i høj grad af dit theme. I nogle themes er det optimalt at have billedet til venstre, i nogle til højre, i nogle foroven osv. Hvis billedet skal være til venstre, sætter du billedets alignment til at være til venstre, således at teksten wrapper til højre for billedet.

Så skifter du pludselig til et nyt theme, som er designet til at billedet skal være til højre. Ups. Nu kan du så enten løse problemet med lidt CSS-magi, eller den mest rigtige metode efter min mening: at skifte alignment på hvert billede i samtlige indlæg. Baggrunden for at jeg synes det er den rigtige løsning har noget med ideologi at gøre – det er bare sådan jeg er, og langt de fleste ville nok bare vælge den hurtige CSS-løsning. Det ved jeg jo godt.

Men lad os så tage et andet eksempel: du skifter til et theme, hvor billedet skal være totalt afskåret fra selve indlægget, men i stedet ligge i en sidebar. Dén får du svært ved at greje med CSS.

Løsningen på alle disse situationer er bedårende simpel. Den består af følgende trin:

  1. Du uploader billedet til indlægget som normalt, men lader være med at indsætte billedet i selve indlægget. Herved er billedet tilknyttet indlægget, men ikke synligt.
  2. Du tilføjer en funktion til dit themes functions.php – se længere nede.
  3. Du indsætter et tag i dit theme, der hvor du vil have billedet.

På den måde har du altid fuld kontrol over hvor billedet kommer til at være. Jeg er fuldt ud klar over at der allerede findes plugins som kan hive et billede ud af indlægget, og placere det andetsteds. Men det kræver at man rent faktisk har indsat billedet i selve indlægget, så jeg foretrækker denne metode.

Omtalte funktion er forholdsvis enkel og nem at udvide. I sin enkleste form ser den sådan ud:
[code lang="php"]
function get_post_image($post_id, $size = 'original', $align = 'left')
{
// size kan være: thumbnail, medium, large, original
global $wpdb;

$sql = "select id from $wpdb->posts where post_parent = " . $post_id;
$sql .= " and post_mime_type like 'image/%' and post_type = 'attachment'";

$img_id = $wpdb->get_var($sql);
$img_array = wp_get_attachment_image_src($img_id, $size, false);

return '';
}
[/code]
Funktionen tager post-id, størrelse (kan være thumbnail, medium, large og original – default er original) og alignment (default er left) som parametre. Da den tager post-id, kan funktionen bruges hvor som helst og behøver ikke være i The Loop. Et indlægs ID finder du til gengæld i The Loop via $post->ID.

Som sagt er funktionen simpel. Hvis man har behov for det, kan man tilføje parametre til css-klasse, alt-beskrivelse osv. Funktionen indsættes i themes functions.php. Hvis filen ikke allerede eksisterer, skal den bare oprettes.

Herefter er du klar til at indsætte billedet i dit theme, eksempelvis:
[code lang="php"]
< ?php echo get_post_image($post->ID, '', '');?>
[/code]
Hurtigt og nemt – i hvert fald hurtigere end manuelt at skulle rette hvert indlæg hver gang du beslutter dig for at billeder skal præsenteres anderledes.

Der er ingen kommentarer til denne artikel endnu – klik her for at skrive den første.

Skriv en kommentar

Luk
(vises ikke)