[easy_svg_icon]
Setz ein Icon aus der Easy-SVG-Bibliothek in Beiträge, Widgets und Page-Builder-Textfelder, wo du kein PHP schreiben kannst, mit Klasse und Label.
Shortcode · Easy SVG · Status: Stabil
Der Shortcode [easy_svg_icon] setzt ein Icon aus der Icon-Bibliothek der Website in Inhalte: einen klassischen Beitrag, einen Shortcode-Block, ein Text-Widget oder das Textfeld eines Page-Builders. Er gibt genau das aus, was easy_svg_icon() ausgibt, denn er ist nur eine dünne Hülle um diese Funktion.
Verwendung
[easy_svg_icon name="easy-svg/heart" class="icon icon--small" label="Favourite"]
Wann du es brauchst
- Ein Redakteur möchte ein Icon im Text und kann oder soll kein PHP schreiben.
- Ein Page-Builder hat ein Text- oder HTML-Feld, das Shortcodes ausführt, aber kein Icon-Element.
- Ein klassisches Theme oder ein Widget-Bereich, in dem der Block-Editor nicht genutzt wird.
Wann nicht:
- In Block-Inhalten unter WordPress 7.1 oder neuer ist der Core-Block Icon mit der Sammlung
easy-svgdie native Wahl. - In PHP-Templates. Ruf
easy_svg_icon()direkt auf, dort gibt es auch den Schalterdecorative, den der Shortcode nicht hat.
Parameter
Das Icon: ein reiner Slug (heart) oder ein Name mit Sammlung (easy-svg/heart). Leerzeichen am Rand werden entfernt. Fehlt name oder ist es leer, wird nichts ausgegeben. Der Kopieren-Knopf der Bibliothek gibt dir die genaue Form, auch ein -2, das der Slug bekommen haben kann, als der Name schon vergeben war.
CSS-Klassen für das svg-Wurzelelement, mit Leerzeichen getrennt. Wird als Attribut maskiert. Leer ist dasselbe wie nicht gesetzt.
Der zugängliche Name. Setz ihn, wenn das Icon für sich allein etwas bedeutet (ein Link nur mit Icon, eine Bewertung). Das Icon bekommt dann role="img", focusable="false" und aria-label. Ohne label ist das Icon dekorativ: aria-hidden="true" und focusable="false". Leer ist dasselbe wie nicht gesetzt.
Jedes andere Attribut (zum Beispiel decorative, size oder onload) wird ignoriert.
Rückgabewert
Das SVG-Markup des Icons mit Klasse und ARIA-Attributen an der Wurzel, oder ein leerer String, wenn der Name fehlt oder kein Icon dazu passt. WordPress setzt den zurückgegebenen String dort ein, wo der Shortcode stand.
Standardwert
Ohne class und label: ein dekoratives Icon, aria-hidden="true" focusable="false", keine Klasse.
Beispiele
Dekoratives Icon vor einem Satz
[easy_svg_icon name="phone" class="inline-icon"] Call us on 030 1234567
Der Text sagt, was das Icon bedeutet, also kein Label.
Icon mit Bedeutung
<a href="https://example.com/feed/">[easy_svg_icon name="easy-svg/rss" label="RSS feed"]</a>
Der Link hat keinen Text, das Label ist sein einziger Name für Screenreader-Nutzer.
Das Inline-Icon gestalten
Die Ausgabe des Shortcodes hat keine Größe. Ergänze eine kleine Regel in deinem Theme oder unter Zusätzliches CSS im Customizer:
.inline-icon {
width: 1em;
height: 1em;
vertical-align: -0.125em;
fill: currentColor;
}
Aus PHP ausgeben
Bekommt ein Template Inhalte mit Shortcodes, gibt do_shortcode() sie aus. Schreibst du das Template selbst, ruf lieber die Funktion direkt auf.
$intro = get_post_meta( get_the_ID(), 'myplugin_intro', true );
echo wp_kses_post( do_shortcode( $intro ) ); // Vorsicht: wp_kses_post() entfernt SVG.
Die Zeile oben zeigt einen häufigen Fehler: wp_kses_post() kennt kein SVG und entfernt das Icon. Maskiere zuerst selbst und ruf do_shortcode() als letzten Schritt auf.
So funktioniert es
- Der Shortcode wird auf
initregistriert, und nur solange die Icon-Bibliothek unter Icons, Einstellungen eingeschaltet ist. Der Schalter wird gelesen, wenn das Plugin lädt, eine Änderung gilt also ab der nächsten Anfrage. - WordPress ruft
easy_svg_icon_shortcode()mit den Attributen auf. Ein Aufruf ohne Attribute übergibt einen String, der wie keine Attribute behandelt wird. namewird getrimmt. Nurclassundlabelwerden weitergereicht, und nur, wenn sie nicht leer sind.easy_svg_icon()erledigt den Rest: Suche, Filtereasy_svg_icon_markup, ARIA-Attribute.
Der Shortcode ist der einzige Weg, wie ein Redakteur ohne Icon-Block ein Icon im Beitragsinhalt ausgibt. Er nutzt dieselbe Suche und dasselbe gehärtete gespeicherte Markup wie die PHP-Funktion, öffnet also keinen zweiten Weg für rohe Bytes auf eine Seite.
Stolperfallen
- Bibliothek ausgeschaltet. Solange die Icon-Bibliothek aus ist, ist der Shortcode nicht registriert, und WordPress zeigt
[easy_svg_icon ...]als reinen Text.easy_svg_icon()in PHP funktioniert weiter. - Kein Attribut
decorative. Ein bedeutungstragendes Icon ohne Label kannst du nicht erzwingen. Schreib stattdessen ein Label. - Unbekannte Namen scheitern still. Ein Tippfehler oder ein gelöschtes Icon ergibt nichts, ohne Hinweis auf der Seite. Kopier den Namen aus der Bibliothek.
- Escaping nach dem Shortcode. Jedes
wp_kses_post()oderesc_html(), das nachdo_shortcode()läuft, entfernt oder maskiert das SVG. - Keine Größe, keine Farbänderung. Das Icon hat die Maße und Farben aus der Datei. Steuere sie mit CSS über die Klasse.