Trick # 539 | Dieser Beitrag beinhaltet 477 Wörter. – Geschätzte Lesezeit: ca. 3 Minuten.
Eine Freundin hatte in ihrem umfangreichen Fotoblog hunderte von Bildern dargestellt. Unglücklicherweise war jedes einzelne Bild mit einem Link auf sich selbst versehen. Wir haben eine Lösung gesucht, um die Bildlinks in allen Beiträgen zu deaktivieren. Nun: wir sind fündig geworden.
Mit WordPress kann es vorkommen, dass Bilder in Beiträgen automatisch mit ihrer Originaldatei verlinkt werden. Während das in vielen Fällen praktisch ist, kann es auch Situationen geben, in denen diese Verlinkungen nicht erwünscht sind.
Die Behebung des Problems sieht zunächst nach viel Handarbeit aus – das war’s aber am Ende nicht.
Den folgenden PHP-Code haben wir der Datei funtions.php hinzugefügt. Die Datei ist im Backend unter Design/Theme-Datei-Edftor zu finden:
// Links um Bilder in Beiträgen automatisch deaktivieren
function disable_image_links($content) {
// Verwende DOMDocument, um HTML zu analysieren
if (!is_admin()) {
$dom = new DOMDocument();
@$dom->loadHTML('<?xml encoding="utf-8" ?>' . $content);
$links = $dom->getElementsByTagName('a'); // Alle Links im Inhalt finden
// Iteriere über alle Links
for ($i = $links->length - 1; $i >= 0; $i--) {
$link = $links->item($i);
$img = $link->getElementsByTagName('img')->item(0); // Verlinktes Bild finden
// Nur Links entfernen, die Bilder enthalten
if ($img) {
$parent = $link->parentNode; // Eltern-Element des Links
$parent->replaceChild($img, $link); // Ersetze Link durch das Bild
}
}
$content = $dom->saveHTML(); // Bearbeiteter Inhalt
}
return $content;
}
add_filter('the_content', 'disable_image_links');
Der Code sichert drei wichtige Punkte ab:
- Er sucht ausschliesslich in Beiträgen nach verlinkten Elementen. Seiten oder Widgets werden nicht durchsucht.
- Der Code berücksichtigt nur verlinkte Bilder und deaktiviert deren Verlinkung. Textlinks funktionieren hingegen weiter zuverlässig.
- Das Skript wirkt nur auf dem Frontend. Im Backend bleiben die Bildlinks bestehen. Das ist vor allem dann hilfreich, wenn die Funktion irgendwann einmal nicht mehr erwünscht sein sollte.
Das Skript ist eine elegante Lösung, um Bild-Links in WordPress-Beiträgen automatisch zu deaktivieren. Es spart Zeit und sorgt für eine saubere Darstellung der Inhalte.
Werbung


