Fügen Sie valide XHTML-schließende img-Tags zu WordPress-Galerien hinzu

Standard-WordPress-Galerien img Tags schließen wie was ist ungültig XHTML. Das Lazyload-XT-Plugin, das ich verwende, zielt auf gültige XHTML-Img-Tags ab, was bedeutet, dass das Ende sein sollte:

  

Anstatt von

  

Wie kann ich dies filtern oder ändern, damit Lazyload korrekt funktioniert?

Das Problem wurde vom Autor der Wp Lazyload XT-Integration erklärt .

Das Thema, das ich verwende, UNDERSCORES, ändert das Markup von WP-Galerien, um es HTML5-konform zu machen. Dies funktioniert nicht gut mit Lazyload XT, das XHTML-Img-Tags abruft, die mit “/>” enden, während HTML5-Img-Tags dies nicht benötigen und mit “>” schließen.

In functions.php ich folgende Zeile auskommentiert:

  /* * Switch default core markup for search form, comment form, and comments * to output valid HTML5. */ add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list', // 'gallery', 'caption', ) ); 

Solutions Collecting From Web of "Fügen Sie valide XHTML-schließende img-Tags zu WordPress-Galerien hinzu"

Wie mit den Kommentaren zu Ihrer Frage verlinkt, sollte Ihnen der post_gallery-Filter hier helfen.

Im Gegensatz zu vielen anderen Hooks können Sie die Ausgabe, die von WordPress kommt, nicht filtern; Sie können nur Ihre eigene alternative Ausgabe bereitstellen. Das ist etwas nervig und führt dazu, dass Sie die Galerie von Grund auf neu erstellen müssen. Sie können dies jedoch mit ein wenig extra Code tun, und die verknüpfte StackOverflow-Antwort liefert ein Beispiel (verwendet aber seltsamerweise

, also ändern Sie das einfach in – und zeichnen dann aus dem WordPress-Standard-Markup für die Ruhe, stellen Sie sicher, Ihr -Tag zu schließen.


Eine Alternative, bei der Sie die Ausgabe filtern können , ist die Verwendung des Filters ” the_content und einige intelligente Regex-functionen. Sie müssen vorsichtig sein, denn wenn Sie nicht an alle möglichen Fälle denken, könnte Ihre Regex etwas fangen, was Sie nicht vorhaben. Dies ist genau das Problem, das der Plugin-Autor in diesem Fall versucht zu vermeiden .

Damit ist hier eine mögliche Lösung. Ändern Sie auf Ihre Bedürfnisse, aber verlassen Sie sich nicht darauf als eine 100% idiotensichere Lösung .

 // priority must be more than 10, so it runs after the gallery shortcode does add_filter( 'the_content', 'wpse231040_close_gallery_img_tags', 11); function wpse231040_close_gallery_img_tags ( $html ) { if ( strpos ( $html, '#gallery-' ) === false ) { return $html; } // make sure there's at least one gallery before running the more expensive preg_replace $html = preg_replace( '/ ( \
with gallery-item class \
with gallery-icon class \ tag ) (.*?)\> # match the attributes inside the tag /sx', '$1$2 />', // add the initial content, the img tag attributes, and finally a closing /> $html ); return $html; }

Standard-Wordpress-Galerien img Tags schließen mit ungültigen XHTML

Das ist nicht der Fall, soweit ich es verstehe.

Die native Galerie verwendet wp_get_attachment_image() zum Generieren jedes Image-Tags und wp_get_attachment_link() , das ein Wrapper für wp_get_attachment_image() ist, um den Image-Link abzurufen.

Die Ausgabe von wp_get_attachment_image() ist:

 $html = rtrim(" $value ) { $html .= " $name=" . '"' . $value . '"'; } $html .= ' />'; 

wo wir explizit das Schließen sehen können.