Support » Plugin: Wordpress Newsletter Plugin von rapidmail » Shortcode am Beginn der Seite, statt im Content

  • Hallo,
    zunächst mal vielen Dank für das Plugin und meinen höchsten Respekt vor der Code-Qualität. Hier ist wirklich einiges an Arbeit geleistet worden. Nichtsdestotrotz habe ich folgenden Bug bemerkt:

    Wenn ich den Shortcode mitten im Content platziere, wird das zugehörige Formular ganz oben im Content-Bereich ausgegeben. Habe das Verhalten mit mehreren Templates getestet, und bekomme immer dasselbe Ergebnis. Auch mit einer neuen WordPress Installation mit TwentySeventeen.

    Den Grund dafür konnte ich auch bereits festmachen:
    Die Methode Rapidmail\Widget::register ruft Rapidmail\Template::display auf, welche das Shortcode Template mittels “require” lädt. Das führt das zur Ausgabe des Inhalts. In Shortcodes muss der Inhalt allerdings “returned” statt ausgegeben werden (siehe WordPress Doku https://codex.wordpress.org/Shortcode_API).

    Gefixt habe ich das mit Output Buffering, via ob_start() und ob_get_clean(), beim $template->display() Aufruf im Callback zu add_shortcode in Rapidmail\Widget::register. Damit funktioniert die Ausgabe in Widgets noch nach wie vor (diese benötigt nämlich eine Ausgabe).

    Wenn der Bug von euch bestätigt werden kann, würde ich mich freuen, wenn ein Fix in zukünftige Versionen einfließen könnte. Für unsere Page habe ich das manuell gefixt, und es wäre schön bald auch sicher das Plugin updaten zu können.

    Besten Dank und Grüße, Martin

Viewing 2 replies - 1 through 2 (of 2 total)
Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘Shortcode am Beginn der Seite, statt im Content’ is closed to new replies.