• Zur Hauptnavigation springen
  • Skip to main content
  • Zur Hauptsidebar springen
  • Zur Fußzeile springen
Logo

CITROWEB Webdesign

Erste Wahl für Ihren Onlineauftritt

  • Home
  • Leistungen
    • Webdesign, Webentwicklung und Beratung
    • Online-Shops mit WooCommerce
    • Technische Unterstützung für WooCommerce-Shops
    • Suchmaschinenmarketing
      • SEO: Ihr Webauftritt erhält mehr relevante Besucher
      • SEA: Suchmaschinenwerbung für Ihren Webauftritt
    • Webhosting
  • Blog
  • Kontakt aufnehmen
Home » Blog » SVG wird in übersetzten Seiten nicht angezeigt – Datum wird aus der URL entfernt

SVG wird in übersetzten Seiten nicht angezeigt – Datum wird aus der URL entfernt

14. Februar 2022

Wenn Sie das SVG Support-Plugin verwenden, werden Sie feststellen, dass die SVG-Bild-URL unvollständig ist, wenn das WPML Media Translation Plugin aktiv ist.

Ein Beispiel, wie die Bild-URL in den übersetzten Seiten aussieht:

Mit aktivierter WPML Media Translation: https://my-domain.com/wp-content/uploads/my-logo.svg
Ohne aktivierte WPML Media Translation: https://my-domain.com/wp-content/uploads/2022/02/my-logo.svg

Wie Sie sehen können liegt das Problem am falschen Pfad. Laut WPML liegt die Ursache in der Implementierung von dem Plugin SVG Support. Bisher ist das Problem nicht behoben worden.

Screenshot: SVG-Datei wird in übersetzten Seite nicht angezeigt (broken image icon), wenn WPML Media Translation aktiviert ist.
Screenshot: SVG-Datei wird in übersetzten Seite nicht angezeigt (broken image icon), wenn WPML Media Translation aktiviert ist.

WPML selbst bietet einen Workaround für dieses Problem an. Allerdings wird dort geraten Änderungen am Code vom SVG Support-Plugin vorzunehmen. Das ist nicht nachhaltig, da beim Update dieses Plugins die gemachten Änderungen verloren gehen könnten (wenn der Autor des Plugins genau diese Datei aktualisiert). Auch ist es kein guter Stil und von WordPress nicht empfohlen, Änderungen direkt im Code von Plugins vorzunehmen.

Da ich selbst auf das Problem gestoßen bin und eine Lösung wollte, die auch nach Updates stabil funktioniert, habe ich dazu eigenen Code geschrieben, den ich gerne nachfolgende weitergeben möchte.

Hier finden Sie die Lösung:

Um das Problem zu lösen, wird folgender Code der WordPress-Instanz hinzugefügt. Das geht mit dem Code Snippets Plugin oder wird in die functions.php des verwendeten Themes hinzugefügt.

Profis haben für solche Anpassungen ohnehin ein separates Plugin und fügen den Code dort ein.

function cw_svgs_generate_svg_attachment_metadata( $metadata, $attachment_id ) {
	if ( get_post_mime_type( $attachment_id ) != 'image/svg+xml' || FALSE === get_option('uploads_use_yearmonth_folders') ) 
        {
		return $metadata;
	}
	
	$metadata['file'] = date("Y") . '/' . date("m") . '/' . $metadata['file'];
	return $metadata;
}
add_filter( 'wp_generate_attachment_metadata', 'cw_svgs_generate_svg_attachment_metadata', 11, 3 );

Wichtig: Die SVGs müssen in WordPress -> Medien erneut hochgeladen werden, damit die Metadaten erneut erstellt werden. Erst dann erscheinen sie korrekt in den übersetzten Seite (ggf. automatische Übersetzung erneut anstoßen).

Ein paar Worte zur Lösung

WordPress bietet das Konzept von Filtern und Actions und das machen wir uns hier zunutze um uns in die Code-Ausführung von SVG Support von außen einzuklinken.

Die Funktion cw_svgs_generate_svg_attachment_metadata wird jedes Mal aufgerufen, wenn eine Mediendatei in WordPress hochgeladen wird. Wenn es sich nicht um eine SVG-Datei handelt oder die Option „Meine Uploads in monats- und jahresbasierten Ordnern organisieren“ in Einstellungen -> Medien nicht aktiviert ist, soll der Dateipfad nicht verändert werden und das Array wird genauso zurückgegeben. Andernfalls wird Jahr und Monat als Pfad ergänzt und das Array zurückgeliefert an die weitere Ausführung in SVG Support.

Der Dateiname steht bereits im Array $metadata, da wir über den Parameter Priorität (Wert 11) von add_filter, festgelegt haben, dass die Funktion nach der Filter-Funktion wp_generate_attachment_metadata, die durch SVG Support ausgeführt wird (dort wird ein niedrigerer Prioritätswert verwendet).

Kategorie: Entwicklung, WordPress, WPML

Haupt-Sidebar

  • How to remove dashicons in WordPress frontend?
  • How do I create a website (homepage) with ChatGPT?
  • Can I create a website (homepage) with ChatGPT?
  • iOS restrictions re: bringing up the keyboard on programmatic focus
  • iOS restrictions re: bringing up the keyboard on programmatic focus
  • Remove user listing from WP-JSON
  • Benutzerauflistung aus WP-JSON entfernen
  • What does „Video is not the main content of the page“ mean?
  • Was hat es mit „Das Video ist nicht der Hauptinhalt der Seite“ auf sich?
  • Remove WordPress logo from toolbar
  • Efficient onboarding simplified: LearnSuite – the cloud application for digital onboarding
  • Wir stellen vor: LearnSuite – Die Cloudanwendung für digitales Onboarding
  • Howto: How do I create a website (homepage) with ChatGPT?
  • Howto: Wie erstelle ich mit ChatGPT eine Website (Homepage)?
  • Can I create a website (homepage) with ChatGPT?
  • Kann ich mit ChatGPT eine Website (Homepage) erstellen?
  • Set noindex nofollow via .htaccess HTTP header
  • Über .htaccess X-Robots-Tag noindex nofollow setzen
  • How to remove WordPress Dashicons in frontend?
  • Wie lassen sich Dashicons im WordPress-Frontend entfernen?
  • DSGVO (3)
  • GDPR (3)
  • Genesis Framework (10)
  • Genesis-Framework (9)
  • Google Search Console (4)
  • Google Search Console (4)
  • Linux (3)
  • Linux (3)
  • mobile (3)
  • Mobile (3)
  • Network (1)
  • Netzwerk (1)
  • SEO (5)
  • SEO (5)
  • Trends (3)
  • Trends (4)
  • Uncategorized (3)
  • Web development (1)
  • Web hosting (1)
  • Webentwicklung (1)
  • Webhosting (1)
  • WooCommerce (9)
  • WooCommerce (9)
  • WordPress (23)
  • WordPress (24)

Footer

Logo




© 2026 CITROWEB
  • Datenschutz
  • Impressum