EASY_SVG_ICONS_API
Versionsnummer des Icon-Vertrags von Easy SVG: easy_svg_registrable_icons, easy_svg_rename_icon() und easy_svg_update_icon_markup(). Vor dem Aufruf prüfen.
Konstante · Easy SVG · Status: Stabil
EASY_SVG_ICONS_API sagt einem Add-on, welche Icon-Werkzeuge Easy SVG mitbringt: einen Filter, der Icons ändert, bevor sie im Icon-Block landen, eine Funktion zum Umbenennen eines Icons und eine Funktion, die die Zeichnung eines Icons ersetzt. Ob es einen Filter gibt, kannst du WordPress nicht fragen, diese Zahl ist also der verlässliche Weg. Seit 5.4.0.
Verwendung
define( 'EASY_SVG_ICONS_API', 3 );
Wird in easy-svg.php definiert, wenn das Plugin lädt.
Wann du es brauchst
- Dein Add-on ändert Größe oder Farbe der Icons für den Icon-Block über
easy_svg_registrable_iconsund soll das nur dort tun, wo der Filter angewendet wird (ab 1). - Dein Add-on benennt gespeicherte Icons mit
easy_svg_rename_icon()um (ab 2). - Dein Add-on repariert oder ersetzt das Markup eines Icons mit
easy_svg_update_icon_markup()(3).
Nimm sie nicht, um herauszufinden, ob die Icon-Bibliothek eingeschaltet ist: Die Konstante gibt es so oder so (siehe Stolperfallen).
Parameter
Keine: Das ist eine Konstante, keine Funktion.
Rückgabewert
Heute 3. Was jede Stufe hinzufügt:
- 1: den Filter
easy_svg_registrable_icons, der die ganze Bibliothek als Liste ausslug,labelundcontentbekommt, bevor sie bei der Icon-Registry von WordPress registriert wird. - 2:
easy_svg_rename_icon( $id, $label )mit den Antwortenrenamed,not_found,no_labeloderfailed. - 3:
easy_svg_update_icon_markup( $id, $markup )mit den Antwortenupdated,not_found,no_markup,refusedoderfailed.
Alle drei kamen zusammen mit 5.4.0, jede veröffentlichte Version mit dieser Konstante hat also den Wert 3.
Standardwert
Nicht zutreffend: Die Konstante fehlt, wenn Easy SVG nicht aktiv ist oder eine Version vor 5.4.0 installiert ist.
Beispiele
Die Zeichnung eines Icons sicher ersetzen
function myaddon_repair_icon( $icon_id, $markup ) {
if ( ! defined( 'EASY_SVG_ICONS_API' ) || EASY_SVG_ICONS_API < 3 ) {
return 'unsupported';
}
// Läuft durch den Sanitizer der Website und die Größen- und Komplexitätsgrenzen.
return easy_svg_update_icon_markup( $icon_id, $markup );
}
Umbenennen, mit Hinweis auf älteren Versionen
function myaddon_rename_icon( $icon_id, $label ) {
if ( ! defined( 'EASY_SVG_ICONS_API' ) || EASY_SVG_ICONS_API < 2 ) {
return new WP_Error( 'myaddon_old_easy_svg', __( 'Please update Easy SVG Support to rename icons.', 'myaddon' ) );
}
$state = easy_svg_rename_icon( $icon_id, sanitize_text_field( $label ) );
return 'renamed' === $state ? true : new WP_Error( 'myaddon_rename_' . $state, $state );
}
Den Registrierungsfilter nur einhängen, wenn er angewendet wird
function myaddon_size_icons( $icons ) {
foreach ( $icons as $index => $icon ) {
if ( isset( $icon['content'] ) && is_string( $icon['content'] ) ) {
$icons[ $index ]['content'] = str_replace( '<svg ', '<svg width="24" height="24" ', $icon['content'] );
}
}
return $icons;
}
function myaddon_boot_icons() {
if ( defined( 'EASY_SVG_ICONS_API' ) ) {
add_filter( 'easy_svg_registrable_icons', 'myaddon_size_icons' );
}
}
add_action( 'plugins_loaded', 'myaddon_boot_icons' );
So funktioniert es
define( 'EASY_SVG_ICONS_API', 3 )läuft ohne Bedingung, wenneasy-svg.phplädt, bei jeder Anfrage.easy_svg_rename_icon()undeasy_svg_update_icon_markup()stehen inincludes/icon-writes.php, das immer geladen wird. Beide schalten kses für ihren einen Schreibvorgang ab (kses kennt kein SVG und würde das Icon für Benutzer ohneunfiltered_htmlleeren) und verwerfen danach die zwischengespeicherte Icon-Liste.easy_svg_update_icon_markup()schickt das neue Markup durch dieselbe Entscheidung wie einen Upload: die Größengrenze auseasy_svg_max_bytes, die Strukturgrenzen, den Sanitizer der Website und die zusätzliche Härtung für Icons. Slug und Titel bleiben unverändert.easy_svg_registrable_iconswird angewendet, während die Icons bei der Icon-Registry von WordPress registriert werden. Das passiert nur, wenn die Icon-Bibliothek unter Icons → Einstellungen eingeschaltet ist und WordPress die Icon-Registry hat (ab 7.1).
Stolperfallen
- Vorhanden heißt nicht eingeschaltet. Konstante und beide Funktionen gibt es auch, wenn die Icon-Bibliothek aus ist. Dein Filter auf
easy_svg_registrable_iconsläuft dann einfach nie, und die Schreibfunktionen ändern trotzdem gespeicherte Icon-Beiträge. - Zu früh prüfen. Wie die anderen Konstanten gibt es sie erst, wenn
easy-svg.phpgeladen ist. Prüf aufplugins_loadedoder später. - Den Icon-Beitrag selbst schreiben.
wp_update_post()auf ein Icon läuft durch kses und leert das SVG für die meisten Benutzer, und der Editor zeigt weiter die alte Icon-Liste. Nimm die beiden Funktionen. - Den Slug ändern. Keine der Funktionen fasst
post_namean, mit Absicht: Gespeicherte Icon-Blöcke und Templates verweisen auf den Slug, und ein fehlendes Icon wird als nichts gerendert.
easy_svg_registrable_icons läuft, nachdem Easy SVG die gespeicherten Icons bereinigt und gehärtet hat. Was du dort in content schreibst, umgeht den Sanitizer von Easy SVG und trifft nur noch auf die kurze Erlaubt-Liste der Icon-Registry von WordPress. Ändere dort nur Größen, Klassen oder Farben, und füge nie Markup aus Benutzereingaben ein, ohne es vorher mit easy_svg_sanitizer() zu bereinigen.