JPKCom FA inline SVG shortcode — Anleitung & Tipps
Inline-SVGs aus Font Awesome (Pro) v5.15.4 per Shortcode in WordPress ausgeben — Installation, Font-Awesome-Setup und Praxis-Tipps zum [jsvg]-Shortcode.
JPKCom FA inline SVG shortcode lädt Icons aus Font Awesome (Pro) v5.15.4 als Inline-SVG und gibt sie über einen Shortcode aus — schnell und ressourcenschonend, ohne Webfont oder JavaScript-Loader. Gedacht für alle, die das SVG-with-JS-Paket von Font Awesome unbürokratisch in ihre WordPress-Seite einbinden wollen.
Das ist kein offizielles Plugin von Font Awesome und steht in keiner direkten Verbindung zum Anbieter. Eine Font-Awesome- bzw. Font-Awesome-Pro-Lizenz bekommst du unter https://fontawesome.com/ (öffnet in neuem Tab).
Anleitung
Voraussetzungen
- WordPress 6.9 oder neuer (getestet bis WordPress 7.1)
- PHP 8.3 oder neuer
- Eine eigene Kopie von Font Awesome (Pro) v5.15.4 (über deine Font-Awesome-Lizenz)
- Multisite wird unterstützt (das Plugin ist netzwerkfähig)
Installation
- Gehe im Admin-Bereich zu Plugins → Installieren und klicke auf Plugin hochladen.
- Wähle die ZIP-Datei des Plugins und klicke auf Jetzt installieren.
- Lade deine Version von Font Awesome (Pro) v5.15.4 unter https://fontawesome.com/ (öffnet in neuem Tab) herunter.
- Entpacke den Inhalt des Font-Awesome-Archivs direkt in einen Ordner namens
jpkcom_fasvg/unterhalb vonwp-content/uploads. - Stelle sicher, dass folgende Dateien/Verzeichnisse vorhanden sind:
wp-content/uploads/jpkcom_fasvg/css/svg-with-js.min.cssundwp-content/uploads/jpkcom_fasvg/svgs/*. - Klicke auf Aktivieren.
Verwendung
Setze den Shortcode in deinen Inhalt oder in einen Menüpunkt-Titel:
[jsvg type="" name="" style="" class="" title=""]Beispiel:
[jsvg type="fal" name="jedi" style="margin:2rem" class="fa-10x" title="Obi-Wan Kenobi"]type— die Font-Awesome-Stil-Familie (z. B.fas,fal)name— der Icon-Name (z. B.jedi)style— optionale Inline-CSS-Angabenclass— zusätzliche CSS-Klassen (z. B.fa-10x,fa-rotate-270)title— barrierefreier Titel des Icons
Der Shortcode lässt sich auch programmatisch über do_shortcode() verwenden:
<?php
echo do_shortcode( '[jsvg type="fas" name="snowboarding" class="fa-4x fa-rotate-270" title="Snowboarding"]' );Mehr zu do_shortcode() findest du in der WordPress-Funktionsreferenz (öffnet in neuem Tab).
Tipps & Tricks
- Icon-Namen entsprechen den SVG-Dateinamen: Der
name-Wert verweist auf die Datei im jeweiligen Stil-Verzeichnis untersvgs/. Stimmt der Name nicht mit einer vorhandenen SVG-Datei überein, wird nichts ausgegeben. - Sicherheit beim
name-Attribut: Seit Version 2.0.9 wird dername-Wert mitsanitize_file_name()/basename()bereinigt, um Path-Traversal zu verhindern — Slashes und Pfadangaben im Namen greifen also nicht. Der Shortcode-Name[jsvg]und alle Attribute bleiben unverändert. - Callback umbenannt (2.0.16): Die Shortcode-Funktion hieß bis dahin
jsvg_code()— als einzige Funktion des Plugins ohne Präfix und ohnefunction_exists()-Schutz. Ein Theme oder Plugin mit demselben Funktionsnamen führte zum Fatal Error. Sie heißt jetztjpkcom_fasvg_shortcode();jsvg_code()bleibt als veralteter Shim erhalten, damit direkter Code weiterläuft. Rufst du die Funktion in eigenem Code auf, zieh den neuen Namen nach. - Multisite: Upload-Pfad pro Site (2.0.16): Pfad und URL des Icon-Ordners wurden bis 2.0.15 einmalig beim Laden der Plugin-Datei aufgelöst. Da das Plugin netzwerkfähig ist und jede Site im Netzwerk ihr eigenes Upload-Verzeichnis hat, zeigte der gemerkte Wert nach einem
switch_to_blog()auf die falsche Site. Shortcode und Stylesheet lösen den Pfad jetzt pro Aufruf überjpkcom_fasvg_path()/jpkcom_fasvg_url()auf. Die KonstantenJPKCOM_FASVG_PATHundJPKCOM_FASVG_URLbleiben aus Kompatibilitätsgründen bestehen. - Eindeutige Titel-IDs: Die
iddes<title>-Elements stammt seit 2.0.16 auswp_unique_id()statt aus einer Zufallszahl. Bei mehreren Dutzend Icons mittitleauf einer Seite war eine Kollision unwahrscheinlich, aber möglich — und eine doppelteidbrichtaria-labelledbystill und ist zudem ungültiges HTML. - In Menü-Titeln nutzbar: Da der Shortcode auch in Menüpunkt-Titeln funktioniert, kannst du Navigationspunkte mit Icons anreichern.
- Transformations-Klassen von Font Awesome: Größen- und Rotations-Utilities wie
fa-4xoderfa-rotate-270lassen sich über dasclass-Attribut mitgeben. - Icons im Block-Editor ab WordPress 7.1: Der Post-Editor rendert seinen Canvas ab WordPress 7.1 immer in einem iframe. Das Stylesheet hing bis Version 2.0.13 an
enqueue_block_editor_assetsund landete damit nur im umgebenden Admin-Dokument — Icons in der Blockvorschau hätten ihre Font-Awesome-Größenregeln verloren und in Originalgröße gerendert. Seit 2.0.14 hängt es anenqueue_block_assetsund erreicht beide Kontexte; der nicht-iframete Editor bis WordPress 7.0 verhält sich unverändert. Front-End und Editor teilen sich jetzt das Handlejpkcom-fasvg-style— das früherejpkcom-fasvg-gutenberg-stylegibt es nicht mehr. Falls du es in eigenem Code dequeued oder als Abhängigkeit angegeben hast, zieh das nach. - Reproduzierbare Updates: Ab Version 2.0.9 nutzt das Plugin sichere, selbst gehostete Updates über GitHub mit SHA256-Prüfsummen und arbeitet mit
declare(strict_types=1). Seit 2.0.17 trägt es außerdem den HeaderUpdate URI: Die Update-Schnittstelle von wordpress.org liefert für dieses Plugin dann keine Updates mehr, ein dort veröffentlichtes Plugin mit demselben Slug kann sich also nicht als Update ausgeben. Seit 2.0.18 zeigt Dashboard → Aktualisierungen das JPKCom-Logo neben dem Plugin. - Updates auch im deaktivierten Zustand: Seit 2.0.19 (Updater 1.5.0) bekommt das Plugin Updates auch dann angeboten, wenn es deaktiviert ist — vorausgesetzt, ein anderes JPKCom-Plugin mit Updater 1.5.0 oder neuer ist aktiv. Dessen Updater beantwortet die Update-Abfrage für alle installierten JPKCom-Plugins, samt Update-Zeile, Icon und „Details anzeigen“, und die SHA256-Prüfung gilt genauso wie für ein aktives Plugin. Auf Multisite muss dafür mindestens ein JPKCom-Plugin netzwerkweit oder auf der Hauptseite aktiv sein. Außerdem seit 2.0.19: Die gespeicherte Update-Liste enthält keine Download-URLs von JPKCom-Plugins mehr, der Updater ergänzt sie nur, solange er geladen ist; die Prüfsumme wird auch bei einem Paket geprüft, das ein anderes Plugin liefert, und für jede GitHub-Adresse der Release-Datei. Liegt das Plugin als Git- bzw. VCS-Checkout oder in einem umbenannten Ordner, zeigt WordPress zwar das neue Release an, bietet aber kein Update-Paket an und verweigert auch den Download (bei einem umbenannten Ordner gilt das, solange das Plugin aktiv ist) — das Update würde den Checkout bzw. den Ordner löschen. Ein deaktiviertes Plugin in einem umbenannten Ordner erkennt der Updater gar nicht, du erfährst dann also auch nichts von neuen Versionen. Aktualisiere solche Installationen von Hand, etwa per
git pull. Update-Informationen holt der Updater nur für Nutzer, die Plugins aktualisieren dürfen, im Update-Cron und in WP-CLI, nie für anonyme Besucher.
Weiterführende Informationen
- Quellcode auf GitHub: https://github.com/JPKCom/jpkcom-fa-svg-plugin (öffnet in neuem Tab)
- API-Dokumentation (PHPDoc): https://jpkcom.github.io/jpkcom-fa-svg-plugin/docs/ (öffnet in neuem Tab)
- Font Awesome (Pro): https://fontawesome.com/ (öffnet in neuem Tab)
do_shortcode()in der WordPress-Referenz (öffnet in neuem Tab)- Changelog dieses Projekts