KonstantenEASY_SVG_ICONS_API

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_icons und 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

EASY_SVG_ICONS_APIint

Heute 3. Was jede Stufe hinzufügt:

  • 1: den Filter easy_svg_registrable_icons, der die ganze Bibliothek als Liste aus slug, label und content bekommt, bevor sie bei der Icon-Registry von WordPress registriert wird.
  • 2: easy_svg_rename_icon( $id, $label ) mit den Antworten renamed, not_found, no_label oder failed.
  • 3: easy_svg_update_icon_markup( $id, $markup ) mit den Antworten updated, not_found, no_markup, refused oder failed.

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, wenn easy-svg.php lädt, bei jeder Anfrage.
  • easy_svg_rename_icon() und easy_svg_update_icon_markup() stehen in includes/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 ohne unfiltered_html leeren) 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 aus easy_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_icons wird 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_icons lä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.php geladen ist. Prüf auf plugins_loaded oder 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_name an, 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.

Siehe auch