Preview image van NextGen gebruiken
Gepost op 10 maart 2009 om 19:31u, door hiranthi | 4 reacties | reageren
loading...
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 { background-image:url('.$toppreview.')!important; }</style> '; } else { echo ' <style type="text/css">#image { background-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(); ?>











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

Marten“s laatste blog ..Cloak Roles
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
Ho heb je deze aan de praat gekregen?
Als ik een custom field maakt is een value verplicht?
filip@nono.be
Een inhoud is inderdaad verplicht, anders weet de functie niet van welke gallery de preview gebruikt moet worden.