Code snippets Snelheids optimalisatie

Custom images met het juiste WordPress formaat tonen

Vaak wil je meer afbeeldingen in je website dan alleen de standaard featured image in WordPress. Dit is op zich niet moeilijk. Met Custom Meta Boxes 2 heb je een zeer flexibele plugin die je diverse mogelijkheden geeft om je eigen afbeeldingsvelden toe te voegen.

Als je echt een extra “featured image” wilt toevoegen kan je de plugin “multiple post thumbnails” gebruiken.

Wat in beide gevallen lastig is, is dat je afbeelding in het originele geuploade formaat wordt getoond als je deze opvraagt met de standaard get_post_meta() functie.

Om dit op te lossen heb ik een functie geschreven die de afbeedling opzoekt aan de hand van zijn url.

Als je onderstaande functies invoegt hoef je alleen nog maar de url op te vragen met

dtc_get_image_url(“dtc_naam_van_afbeelding”, “thumbnail”);

Je krijgt dan een url terug naar een afbeelding in het juiste formaat.

function dtc_get_image_url($name, $size) {
  if ($name=='default-image') {
    $id = get_post_thumbnail_id(get_the_ID());
  } else {
  //when you use the plugin "multiple post thumbnails"
    $url = MultiPostThumbnails::get_post_thumbnail_url(get_post_type(), $name);
 //when you use CMB2
    global $post;
    $url = get_post_meta($post->ID, $name, TRUE);


    $id = dtc_get_attachment_id_from_src($url);
  }

  return wp_get_attachment_image_src( $id, $size)[0];
}

/*

    Find the attachment ID by url. 

*/

function dtc_get_attachment_id_from_src ($image_src) {
        global $wpdb;
        $query = "SELECT ID FROM {$wpdb->posts} WHERE guid='$image_src'";
        $id = $wpdb->get_var($query);
        return $id;
    }

Related Articles

  • Recent posts widget filteren op categorie

    Soms wil je in de recent posts widget alleen posts laten zien uit een bepaalde categorie. Dit is heel eenvoudig te doen met een paar regels code. Vul bij 6...
  • Sorteren op custom taxonomie in WordPress

    Voor een project met eigen post types, maatwerk velden, en een maatwerk taxonomie structuur (Categorieën van tags zijn bijvoorbeeld een taxonomie), was het nodig om te kunnen sorteren op een...
  • Bij vorige volgende posts binnen dezelfde categorie blijven

    WordPress heeft een hoop functionaliteiten ingebouwd, zoals ook bijvoorbeeld de get_previous_post(), get_next_post(), of get_previous_post_link() functies. Maar wat als je de vorige (of volgende) post wilt van dezelfde categorie? Dat lijkt...
  • Je eigen session variabele in WordPress

    Regelmatig heb ik een sessie variabele nodig in verschillende projecten. Een hele simpele manier om dit te doen is wp session manager. Installeer en activeer de plugin, en je kan...

Laat een reactie achter