EASY_SVG_API
Versionsnummer des Sanitizer-Vertrags von Easy SVG. Prüf sie statt der Plugin-Version, bevor dein Add-on easy_svg_sanitizer() aufruft.
Konstante · Easy SVG · Status: Stabil
EASY_SVG_API ist eine einfache Zahl, an der Add-ons erkennen, welche Version des Sanitizer-Vertrags von Easy SVG installiert ist. Der Vertrag besteht aus einer Funktion, easy_svg_sanitizer(), die einen Sanitizer liefert, der genau so eingestellt ist, wie die Website SVGs bereinigt. Gibt es die Konstante, kannst du die Funktion nutzen. Seit 5.0.0.
Verwendung
define( 'EASY_SVG_API', 3 );
Wird in easy-svg.php definiert, sobald die Plugin-Datei geladen wird. Lies sie mit defined( 'EASY_SVG_API' ) und vergleiche sie als Ganzzahl.
Wann du es brauchst
- Dein Plugin oder Theme bereinigt SVG-Markup und soll dabei dieselben Regeln wie die Website nutzen (die Erlaubt-Liste aus
esw_svg_allowed_tagsundesw_svg_allowed_attributesund die Einstellung zu externen Verweisen). - Du willst wissen, ob Easy SVG installiert ist und diese Funktion anbietet, ohne Plugin-Versionen zu vergleichen.
Lass es bleiben, wenn:
- du die Erweiterungspunkte des Icons-Panels brauchst. Dafür gibt es
EASY_SVG_PANEL_API. - du die Icon-Schreibfunktionen oder
easy_svg_registrable_iconsbrauchst. Dafür gibt esEASY_SVG_ICONS_API.
Parameter
Keine: Das ist eine Konstante, keine Funktion.
Rückgabewert
Heute 3. Die Zahl ändert sich nur, wenn sich die Form von easy_svg_sanitizer() ändert, nicht mit jedem Release. Deshalb ist sie sicherer zu vergleichen als die Plugin-Version: Zwei Plugin-Versionen mit und ohne eine bestimmte Funktion können bei einem Versionsvergleich gleich aussehen, diese Zahl nicht.
Standardwert
Nicht zutreffend: Die Konstante definiert das Plugin selbst, ohne aktives Easy SVG fehlt sie.
Beispiele
Markup so bereinigen wie die Website
function myaddon_clean_svg( $markup ) {
if ( ! defined( 'EASY_SVG_API' ) || EASY_SVG_API < 3 ) {
return false;
}
$sanitizer = easy_svg_sanitizer();
if ( null === $sanitizer ) {
return false; // Die Bereinigungs-Bibliothek ist nicht geladen.
}
$clean = $sanitizer->sanitize( (string) $markup );
return is_string( $clean ) && '' !== trim( $clean ) ? $clean : false;
}
Einmal prüfen, nachdem alle Plugins geladen sind
Ob EASY_SVG_API schon existiert, während deine eigene Plugin-Datei lädt, hängt von der Ladereihenfolge ab. Entscheide auf plugins_loaded.
function myaddon_maybe_boot() {
if ( ! defined( 'EASY_SVG_API' ) ) {
add_action( 'admin_notices', 'myaddon_missing_easy_svg_notice' );
return;
}
require_once __DIR__ . '/includes/svg-features.php';
}
add_action( 'plugins_loaded', 'myaddon_maybe_boot' );
function myaddon_missing_easy_svg_notice() {
if ( ! current_user_can( 'activate_plugins' ) ) {
return;
}
printf(
'<div class="notice notice-warning"><p>%s</p></div>',
esc_html__( 'My Add-on needs Easy SVG Support to be active.', 'myaddon' )
);
}
Defensiv: Konstante und Funktion
$myaddon_can_sanitize = defined( 'EASY_SVG_API' ) && function_exists( 'easy_svg_sanitizer' );
So funktioniert es
define( 'EASY_SVG_API', 3 )läuft oben ineasy-svg.php, direkt nach den beiden Klassen für die Erlaubt-Listen und bevor irgendeine Einstellung gelesen wird. Ist Easy SVG geladen, gibt es die Konstante bei jeder Anfrage: im Frontend, im Backend, bei REST, Cron und WP-CLI.- Sie ist definiert, egal ob SVG-Uploads oder die Icon-Bibliothek eingeschaltet sind. Sie sagt, dass der Code da ist, nicht dass eine Funktion aktiv ist.
easy_svg_sanitizer()liefert bei jedem Aufruf einen neuen Sanitizer, eingestellt mit den gefilterten Erlaubt-Listen undesw_svg_remove_remote_references. Fehlt die Bereinigungs-Bibliothek, liefert die Funktionnull.- WordPress lädt aktive Plugins in der Reihenfolge ihrer Dateipfade. Ein Plugin in einem Ordner, der vor
easy-svgeinsortiert wird (zum Beispieleasy-svg-pro, weil-vor/kommt), und alle Must-Use-Plugins laden früher. Während deren Hauptdatei läuft, gibt es die Konstante also noch nicht.
Stolperfallen
- Zu früh prüfen. Ganz oben in deiner Plugin-Datei kann die Konstante fehlen, obwohl Easy SVG aktiv ist. Prüf auf
plugins_loadedoder später. - Stattdessen Plugin-Versionen vergleichen. Die readme verspricht diese Zahl, keine Versionsnummern.
- Davon ausgehen, dass
easy_svg_sanitizer()ein Objekt liefert. Es kannnullsein. Prüf das immer, bevor dusanitize()aufrufst. - Die Klassen dahinter nutzen.
esw_svg_tags,esw_svg_attributesund das globale$sanitizersind intern. Nach einer Umbenennung liefertclass_exists()false, und dein Add-on hält Easy SVG für nicht installiert.