Hallo liebes Forum,
vielerseits wurde schon bemängelt, dass WP die Bilder in Artikeln automatisch in <p>-Tags packt. Das ist dann ungünstig, wenn man ein responsives Design mit verschiedenen Bildgrößen erstellen möchte. Dieses Problem lässt sich zum Glück aber sehr einfach dank PHP oder jQuery lösen.
Damit ist es für mich aber noch nicht getan: Wenn ein Bild mit einer Unterzeile versehen ist, bettet WP beide Elemente in ein <div> ein. Das finde ich vollkommen unnötig und möchte deshalb auch das <div> loswerden.
Mit diesem Regulären Ausdruck sollte beides auf einen Streich entfernt werden:
function unwrap_images($content) {
return preg_replace('/(<p>|<div .*>)(\s*)(<a .*>)?(\s*)(<img .* \/>)(\s*)(<\/a>)?(\s*)(<p .*>.*<\/p>)?(\s*)(<\/p>|<\/div>)/', '$3$5$7$9', $content);
}
add_filter('the_content', 'unwrap_images');
Seltsamerweise werden bei meinen Tests mit WP aber nur die <p>-Tags entfernt, die <div>-Tags bleiben übrig. Wenn ich stattdessen den Quelltext direkt einspeise, funktionert alles.
Die Parameter sind hier noch einmal schön visualisiert:
https://regex101.com/r/tM0zU5/1
Hat jemand eine Idee, was bei mir schiefläuft?
Besten Dank!