Preview image van NextGen gebruiken

VN:F [1.9.17_1161]
Rating: 0.0/5 (0 votes cast)

Als je WordPress gebruikt ken je – tenzij je in een grot woont en je WP installatie niet online gebruikt – de gallery plugin NextGen Gallery wel. Door velen – waaronder ik – wordt deze plugin gebruikt in hun portfolio.

NextGen Gallery geeft je de mogelijkheid om een preview image op te geven (per gallery). Nu kan het zijn dat je daar iets speciaals mee wilt doen, zoals ik in mijn portfolio (zie de header afbeelding per portfolio item).

Ik heb toentertijd de documentatie van NG af lopen zoeken, maar niks kunnen vinden om zelf de preview image makkelijk op te vragen en te gebruiken voor andere doeleinden. Toen dus maar in de code van NG zitten snuffelen en daar is het volgende uit gekomen:

Stap 1

Voeg aan elke post/pagina (waar je zo’n preview image van een van je NG Galleries wilt weergeven) een custom field preview_ng genaamd toe.

Stap 2

Voeg de volgende functie toe aan functions.php van je huidige theme:

<?php

function getPreviewNG()
{
  global $wpdb, $post;

  $preview_ng = get_post_meta($post->ID, 'preview_ng', true);

  $img_cat = $wpdb->get_row('SELECT * FROM '.$wpdb->nggallery.' WHERE gid = '. $preview_ng .' ORDER by gid DESC limit 0,1');
  $first_image = $wpdb->get_row('SELECT * FROM '. $wpdb->nggpictures .' WHERE exclude != 1 AND galleryid = '. $preview_ng .' limit 1');

   $albumPreview = $wpdb->get_results('SELECT pid, filename FROM '.$wpdb->nggpictures.' WHERE pid = '.$img_cat->previewpic.'', OBJECT_K);
  $toppreview = get_option ('siteurl') . '/' . $img_cat->path . '/' . $first_image->filename;

  if ( $previewimg = $albumPreview[$img_cat->previewpic]->filename )
  {
    $toppreview = get_option ('siteurl').'/' . $img_cat->path . '/' . $previewimg;
    echo '
<style type="text/css">#image { <a title="Zie ook Background patterns" href="http://hiranthi.nl/freebies/background-patterns/">background</a>-image:<a title="Zie ook Makkelijk linken naar WordPress functies" href="http://hiranthi.nl/wordpress/makkelijk-linken-wordpress-functies/">url</a>('.$toppreview.')!important; }</style>

';
  }
  else
  {
    echo '
<style type="text/css">#image { <a title="Zie ook Meerdere achtergronden" href="http://hiranthi.nl/tutorials/meerdere-achtergronden/">background</a>-image:url('.$toppreview.')!important; }</style>

';
  }
}

?>

Stap 3

Voeg in je template (bv. header.php) het volgende toe om de afbeelding weer te geven:

<?php getPreviewNG(); ?>
  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

4 Responses to Preview image van NextGen gebruiken
  1. Filip Beantwoorden

    Ho heb je deze aan de praat gekregen?
    Als ik een custom field maakt is een value verplicht?

    filip@nono.be

    VA:F [1.9.17_1161]
    Rating: 0 (from 0 votes)
    • hiranthi Beantwoorden

      Een inhoud is inderdaad verplicht, anders weet de functie niet van welke gallery de preview gebruikt moet worden.

      VA:F [1.9.17_1161]
      Rating: 0 (from 0 votes)
  2. Marten Beantwoorden

    Hoi hiranti, dank voor je post. Er is nog een ander manier om de preview image te achterhalen zonder gebruik te maken van een custom field. Je kan via explode(); de nggallery tag achterhalen, waarna je via een functie dan weer de preview image achterhaalt. bijna hetzelfde, maar voor de gebruiker iets makkelijker :-)

    VA:F [1.9.17_1161]
    Rating: 0 (from 0 votes)
    • hiranthi Beantwoorden

      Hoi Marten,

      Ik snap niet helemaal wat je bedoelt. Dat je de shorttag van NG moet gebruiken om zo de preview afbeelding te achterhalen?
      Dan moet je wel uitkijken dat de shorttag zelf niet wordt behandelt door WP, anders krijg je de gallery zelf te zien en dat is niet de bedoeling natuurlijk.

      Groetjes,
      Hiranthi

      VA:F [1.9.17_1161]
      Rating: 0 (from 0 votes)

Geef een reactie

Your email address will not be published. Please enter your name, email and a comment.

*

De volgende HTML tags en attributen zijn toegestaan: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <div align="" class="" dir="" id="" lang="" style="" xml:lang=""> <pre class="">

CommentLuv badge