Setseasy_svg_pro_set_screen_redirect

easy_svg_pro_set_screen_redirect

Behalte die klassische Bearbeitungsseite für Icon-Sets, oder schick veröffentlichte und neue Sets ins Raster der Icon-Bibliothek, pro Set oder für alle.

Filter · Easy SVG Pro · Status: Stabil

Öffnest du ein veröffentlichtes Icon-Set oder klickst auf "Icon-Set hinzufügen", zeigt Easy SVG Pro nicht die klassische Bearbeitungsseite von WordPress. Es schickt dich ins Raster im Icons-Panel, wo alle Sets und Icons an einem Ort liegen. Dieser Filter entscheidet, ob diese Weiterleitung passiert. Gibst du false zurück, öffnet sich das Set auf seiner eigenen Seite, mit dem Set-Editor unter dem Titel.

Verwendung

apply_filters( 'easy_svg_pro_set_screen_redirect', bool $redirect, WP_Post|null $post )

Angewendet in includes/editor/editor-screen.php, in set_screen_redirect(), die auf load-post.php und load-post-new.php läuft.

Wann du es brauchst

  • Dein Team kennt die klassische Set-Seite und du willst sie behalten, bis sich alle ans Raster gewöhnt haben.
  • Ein eigener Ablauf braucht die Post-Seite: eigene Meta-Boxen an easy_svg_set, ein Redaktions-Plugin mit eigenem Panel auf Post-Seiten oder ein Handbuch mit Screenshots.
  • Du willst die Weiterleitung nur für manche Sets, etwa die klassische Seite für ein gesperrtes Marken-Set.
  • Du debuggst den Set-Editor und willst die Post-Seite ohne Weiterleitung.

Nicht dafür gedacht:

  • Ändern, was mit Entwürfen passiert. Ein Entwurf bleibt immer auf der Set-Seite, und der Filter wird gar nicht gefragt (siehe Stolperfallen).
  • Das Raster ausblenden. false stoppt nur die Weiterleitung, das Icons-Panel und sein Raster bleiben, wie sie sind.

Parameter

body
$redirectbool
Required

Immer true, wenn der Filter läuft. Er wird nur gefragt, wenn wirklich eine Weiterleitung passieren würde.

body
$postWP_Post|null
Required

Das veröffentlichte Set, das geöffnet wird, oder null, wenn auf post-new.php?post_type=easy_svg_set ein neues Set angelegt wird.

Rückgabewert

returnbool

true (oder ein anderer wahrer Wert) schickt den Browser ins Raster. false (oder ein anderer falscher Wert) zeigt die klassische Set-Seite.

Standardwert

true: Veröffentlichte und neue Sets öffnen sich im Raster.

Beispiele

Überall die klassische Seite behalten

add_filter( 'easy_svg_pro_set_screen_redirect', '__return_false' );

Klassische Seite für neue Sets, Raster für bestehende

/**
 * Sets auf der Post-Seite anlegen, im Raster bearbeiten.
 */
function acme_new_sets_on_post_screen( $redirect, $post ) {
	return null === $post ? false : $redirect;
}
add_filter( 'easy_svg_pro_set_screen_redirect', 'acme_new_sets_on_post_screen', 10, 2 );

Ein gesperrtes Marken-Set bleibt auf seiner eigenen Seite

/**
 * Das ACME-Marken-Set hat eine eigene Freigabe-Meta-Box, die auf der Post-Seite liegt.
 */
function acme_keep_brand_set_classic( $redirect, $post ) {
	if ( $post instanceof WP_Post && 'acme-brand' === $post->post_name ) {
		return false;
	}

	return $redirect;
}
add_filter( 'easy_svg_pro_set_screen_redirect', 'acme_keep_brand_set_classic', 10, 2 );

Defensiv: ein Schalter in der wp-config.php

/**
 * define( 'ACME_CLASSIC_SET_SCREEN', true ); in der wp-config.php behält die alte Seite.
 */
function acme_classic_set_screen_switch( $redirect ) {
	if ( defined( 'ACME_CLASSIC_SET_SCREEN' ) && ACME_CLASSIC_SET_SCREEN ) {
		return false;
	}

	return $redirect;
}
add_filter( 'easy_svg_pro_set_screen_redirect', 'acme_classic_set_screen_switch' );

So funktioniert es

Auf load-post.php und load-post-new.php prüft Easy SVG Pro der Reihe nach:

  1. Die Lizenz ist aktiv, Icon-Set-Editor ist unter Icons → Funktionen eingeschaltet, und der aktuelle Benutzer hat manage_options. Sonst passiert nichts.
  2. Der Request ist ein GET für den Post-Type easy_svg_set. Speichern, Papierkorb und jeder POST laufen unverändert durch, post.php funktioniert dafür also weiter.
  3. Auf post-new.php: Ziel ist das Raster, das ein neues Set beginnen soll.
  4. Auf post.php: Die Action ist edit, das Set ist veröffentlicht und hat einen Sammlungs-Slug. Entwürfe, ausstehende und private Sets bleiben auf der Set-Seite.
  5. Erst jetzt wird dieser Filter gefragt, mit true. Kommt ein wahrer Wert zurück, geht der Browser zu admin.php?page=easy-svg-icons&tab=library, dazu collection=<slug> für ein bestehendes Set oder new-set=1 für ein neues, und der Request endet.

Der Slug in der Adresse ist der registrierte Sammlungs-Slug. Auf älteren Seiten kann er auf -x enden und vom Post-Slug abweichen.

Stolperfallen

  • Für Entwürfe kannst du keine Weiterleitung erzwingen. Bei Entwürfen, POST-Requests und anderen Post-Types wird der Filter nie aufgerufen, true bewirkt dort also nichts. Das Raster zeigt nur veröffentlichte Sets.
  • Eine eigene Weiterleitung kommt zuerst. Leitet ein anderes Plugin auf load-post.php mit früherer Priorität weiter, läuft dieser Filter vielleicht nie.
  • Der Link in der Liste bleibt. Die Zeilen-Aktion "In der Bibliothek öffnen" in der Set-Liste wird separat hinzugefügt und hängt nicht an diesem Filter.
  • Nur für Benutzer mit manage_options. Andere kommen ohnehin nicht auf die Set-Seite: Jede Berechtigung des Post-Types easy_svg_set ist auf manage_options gemappt.

Siehe auch