KonstantenEASY_SVG_API

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_tags und esw_svg_allowed_attributes und 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_icons brauchst. Dafür gibt es EASY_SVG_ICONS_API.

Parameter

Keine: Das ist eine Konstante, keine Funktion.

Rückgabewert

EASY_SVG_APIint

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 in easy-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 und esw_svg_remove_remote_references. Fehlt die Bereinigungs-Bibliothek, liefert die Funktion null.
  • WordPress lädt aktive Plugins in der Reihenfolge ihrer Dateipfade. Ein Plugin in einem Ordner, der vor easy-svg einsortiert wird (zum Beispiel easy-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_loaded oder später.
  • Stattdessen Plugin-Versionen vergleichen. Die readme verspricht diese Zahl, keine Versionsnummern.
  • Davon ausgehen, dass easy_svg_sanitizer() ein Objekt liefert. Es kann null sein. Prüf das immer, bevor du sanitize() aufrufst.
  • Die Klassen dahinter nutzen. esw_svg_tags, esw_svg_attributes und das globale $sanitizer sind intern. Nach einer Umbenennung liefert class_exists() false, und dein Add-on hält Easy SVG für nicht installiert.

Siehe auch