Probleme mit einem Foreach innerhalb eines Shortcodes mit ACF-Galerie haben

Normalerweise würde ich diese Art von Inhalt einfach in eine Vorlage einfügen, aber die Art, wie ich den Inhalt einreiße, ist etwas anders. Ich habe einen Shortcode erstellt, mit dem ich Probleme hatte. Es verwendet den Orbit-Schieber von Foundation 5 und eine ACF-Galerie. Es hängt sich auf dem foreach Teil auf.

 // Add Shortcode function custom_carousel($atts, $content = null) { extract( shortcode_atts( array(), $atts)); $out1 = '
    '; $carouselimages = get_field('gallery'); foreach ($carouselimages as $carouselimage) { $output = '
  • ' . $carouselimage['alt'] . '
  • '; } $out3 = '
'; return $out1 . $output . $out3; } add_shortcode('custom-carousel', 'custom_carousel');

Ich verwende diesen Code für die mobile Version der Website in der Vorlage, die perfekt funktioniert:

  
  • <img src="https://wordpress.stackexchange.com/questions/215266/having-issues-with-a-foreach-inside-of-a-shortcode-with-acf-gallery/" title="" alt="" />

Solutions Collecting From Web of "Probleme mit einem Foreach innerhalb eines Shortcodes mit ACF-Galerie haben"

Zuerst – benutze keinen extract . Es ist ein sehr schlechter Code-Stil und ist auch im core veraltet.

Jedes Mal, wenn Ihre foreach-Schleife ausgeführt wird, überschreiben Sie den Inhalt von $output weil Sie dieser Variable neuen Inhalt zuweisen. Was Sie wollen, ist neue Listenelement mit bestehenden zu verketten. Dies kann mit dem Concatening-Zuweisungsoperator erfolgen:

 $output .= '
  • ' . $carouselimage['alt'] . '
  • ';

    $output Variable sollte vor Ihrer foreach statement definiert werden. Ordnen Sie ihm einfach eine leere Zeichenfolge zu.