Individuelle Links bei NextGen-Slider

Gepostet von Heli am 24. Apr 2015


So kann man mit dem WordPress-Plugin NextGen Gallery einen Slider einbinden, wo man für jedes Bild einen individuellen Link hinterlegen kann. Getestet mit NextGen Version 2.1.2 / WordPress 4.3.1. Das funktioniert nur bei der NextGEN Basic Slideshow, nicht bei der Pro Slideshow.

  1. Die Links müssen in der Galerie bei jedem Bild unter Beschreibung eingetragen werden. Format: link:#http://www.orf.at#
  2. Den folgenden Code in der functions.php einfügen:

How to a add slider with the WordPress-plugin NextGen Gallery, having an individual URL for every picture. Tested with NextGen Version 2.1.2 / WordPress 4.3.1. This works only with the NextGEN Basic Slideshow, not with the Pro Slideshow.

  1. Add the links in the gallery for every picture at „description“. Format: link:#http://www.orf.at#
  2. Add the following code to the functions.php:

 

// Part 1: fetch links from the alt-Tag an put it in a surrounding link

function my_ngg_singlelink($lcContent) {
 if (preg_match("/(<div id=\"ngg-image.*class=\"ngg-gallery-slideshow-image\".*)(link:#(.*)#)(.*<\/div>)/sU", $lcContent)){
  return preg_replace("/(<div id=\"ngg-image.*class=\"ngg-gallery-slideshow-image\".*)(link:#(.*)#)(.*<\/div>)/sU", '<a href="$3">$1$4</a>', $lcContent);
 } else {
  return $lcContent;
 }
}

add_filter('the_content', 'my_ngg_singlelink', PHP_INT_MAX);

// Part 2: disable the default NextGen-prevNextEvent-Event

function mytheme_more_scripts() {
echo <<<SCRIPT
<script type="text/javascript">
jQuery.fn.cycle.defaults.prevNextEvent = '';
</script>
SCRIPT;
}

add_action('wp_print_footer_scripts', 'mytheme_more_scripts');

 

 

In Teil 1 wird das Linkziel aus dem alt-Tag des Bildes extrahiert und in einen übergeordneten Link eingetragen.
Teil 2: Die Default-Einstellung prevNextEvent wird für den NextGen-Slider überschrieben (sonst bewirkt ein Klick ein Wechsel aufs nächste Bild)

 

Kommentar absenden

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert