add_filter( 'the_content', 'attachment_image_link_remove_filter' );
function attachment_image_link_remove_filter( $content ) {
$content =
preg_replace(
array('{<a(.*?)(wp-att|wp-content\/uploads)[^>]*><img}',
'{ wp-image-[0-9]*" /></a>}'),
array('<img','" />'),
$content
);
return $content;
}
Die Regex könnte einfacher sein und dies beraubt Sie leider auch der eindeutigen Klasse wp-image-xxx
(wobei xxx die Anhangs-ID ist) des <img>
Tags, aber es ist die sicherste, die ich finden könnte, um nur Links um Anhangsbilder zu entfernen und In-Text-Links zu hinterlassen sowie Links zu Bildern ohne Anhang intakt.
Wenn Sie sich nicht für Bilder ohne Anhang interessieren und möchten, dass alle Bilder im Beitragsinhalt ohnehin nicht in Links eingeschlossen werden, sollte dies ausreichen:
function attachment_image_link_remove_filter( $content ) {
$content =
preg_replace(array('{<a[^>]*><img}','{/></a>}'), array('<img','/>'), $content);
return $content;
}
Ich kann jedoch sehen, dass es Dinge kaputt macht, wenn das Innere eines Ankers in einem anderen selbstschließenden Element endet, beispielsweise einem <br />
Tag. Das wäre natürlich selten, aber ich würde empfehlen, die erste, wenn auch längere Version zu verwenden.