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.
falsestoppt nur die Weiterleitung, das Icons-Panel und sein Raster bleiben, wie sie sind.
Parameter
Immer true, wenn der Filter läuft. Er wird nur gefragt, wenn wirklich eine Weiterleitung passieren würde.
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
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:
- Die Lizenz ist aktiv, Icon-Set-Editor ist unter Icons → Funktionen eingeschaltet, und der aktuelle Benutzer hat
manage_options. Sonst passiert nichts. - Der Request ist ein GET für den Post-Type
easy_svg_set. Speichern, Papierkorb und jeder POST laufen unverändert durch,post.phpfunktioniert dafür also weiter. - Auf
post-new.php: Ziel ist das Raster, das ein neues Set beginnen soll. - Auf
post.php: Die Action istedit, das Set ist veröffentlicht und hat einen Sammlungs-Slug. Entwürfe, ausstehende und private Sets bleiben auf der Set-Seite. - Erst jetzt wird dieser Filter gefragt, mit
true. Kommt ein wahrer Wert zurück, geht der Browser zuadmin.php?page=easy-svg-icons&tab=library, dazucollection=<slug>für ein bestehendes Set odernew-set=1fü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,
truebewirkt dort also nichts. Das Raster zeigt nur veröffentlichte Sets. - Eine eigene Weiterleitung kommt zuerst. Leitet ein anderes Plugin auf
load-post.phpmit 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-Typeseasy_svg_setist aufmanage_optionsgemappt.