easy_svg_pro_import_max_entries
Lege fest, wie viele SVG-Dateien Easy SVG Pro aus einem ZIP liest. Gilt für Set-Import, Paket-Upload, Font Awesome, Presets und wp easy-svg pack import.
Filter · Easy SVG Pro · Status: Stabil
Wenn jemand ein ZIP importiert, liest Easy SVG Pro höchstens 2000 Icons daraus. Dieser Filter ändert die Zahl. Er schützt den Server vor einem Archiv mit zehntausenden winzigen Dateien und lässt eine Seite mit einem wirklich großen Icon-Set die Grenze bewusst anheben.
Verwendung
apply_filters( 'easy_svg_pro_import_max_entries', int $max )
Angewendet in includes/editor/set-import.php, in zip_entries_from_path(). Das Ergebnis wird in eine Ganzzahl umgewandelt.
Wann du es brauchst
- Du importierst ein Set mit mehr als 2000 Icons in einem Archiv und der Import hört zu früh auf.
- Du willst auf einem kleinen Shared Host eine engere Grenze, damit niemand einen Worker mit einem Riesenarchiv blockiert.
- Du importierst automatisiert (
wp easy-svg pack import) und willst eine Grenze, die zu deinen Paketen passt.
Nicht dafür gedacht:
- Das Archiv ist groß in Bytes, nicht in Dateien. Dafür gibt es
easy_svg_pro_import_max_total_bytes. - Du importierst eine SVG-Icon-Font, kein ZIP. Dafür gibt es
easy_svg_pro_import_font_max_bytes. - Eine einzelne SVG im ZIP ist zu groß. Jeder Eintrag unterliegt der Größengrenze des kostenlosen Plugins,
easy_svg_max_bytes.
Parameter
Wie viele Einträge aus einem Archiv gelesen werden. Es zählen nur Einträge, die behalten werden: .svg-Dateien und manifest.json. Ordner, Bilder, Textdateien und alles andere werden übersprungen und verbrauchen nichts von der Grenze.
Rückgabewert
Die Grenze an Einträgen. Der Wert wird nicht begrenzt, 0 oder eine negative Zahl heißt also: Nichts wird gelesen, und jeder Import meldet, dass die Datei kein Icon enthielt, das die Seite annehmen konnte.
Standardwert
2000.
Beispiele
Größere Sets erlauben
/**
* Unsere Icon-Bibliothek liefert 3500 Icons in einem Paket.
*/
function acme_import_max_entries( $max ) {
return max( $max, 4000 );
}
add_filter( 'easy_svg_pro_import_max_entries', 'acme_import_max_entries' );
max() behält eine höhere Grenze, die ein anderes Plugin schon gesetzt hat.
Die Grenze nur für WP-CLI anheben
/**
* Der Browser behält den Standard. Deploy-Skripte dürfen mehr lesen.
*/
function acme_import_max_entries_cli( $max ) {
if ( defined( 'WP_CLI' ) && WP_CLI ) {
return 10000;
}
return $max;
}
add_filter( 'easy_svg_pro_import_max_entries', 'acme_import_max_entries_cli' );
Hebst du die Zahl der Einträge an, heb auch easy_svg_pro_import_max_total_bytes an, sonst stoppt die Bytegrenze den Import zuerst.
Engere Grenze auf einem kleinen Host, nie null
function acme_import_max_entries_small( $max ) {
return max( 1, min( (int) $max, 500 ) );
}
add_filter( 'easy_svg_pro_import_max_entries', 'acme_import_max_entries_small' );
So funktioniert es
Jeder ZIP-Import läuft durch einen einzigen Leser, also gilt überall dieselbe Regel:
| Weg | Wo |
|---|---|
| Set-Import | POST /easy-svg-pro/v1/sets/{id}/import mit einem .zip |
| Paket-Upload | Icons → Pakete, POST /easy-svg-pro/v1/packs/import |
| Font-Awesome-Download | Icons → Pakete mit eingeschaltetem Font-Awesome-Import |
| Preset-Installation | POST /easy-svg-pro/v1/presets/install |
| Kommandozeile | wp easy-svg pack import |
Für jeden Eintrag, in der Reihenfolge des Archivs, macht der Leser Folgendes:
- Er hört auf, sobald die Zahl der behaltenen Einträge deine Grenze erreicht hat.
- Er überspringt einen Namen mit
..oder einem führenden/. - Er überspringt alles, was nicht
manifest.jsonoder eine.svg-Datei ist. - Er überspringt einen Eintrag über seiner eigenen Grenze:
easy_svg_max_bytes()für eine SVG (2 MB, wenn das kostenlose Plugin fehlt), 1 MB für das Manifest. Die Größe wird laut Archiv und nach dem Lesen noch einmal geprüft. - Er addiert die Bytes zu einer laufenden Summe und hört auf, wenn sie die Gesamtgrenze übersteigt.
- Er behält den Eintrag.
Nichts wird auf die Platte geschrieben. Nach dem Lesen läuft jede SVG durch Sanitizer und Härter der Seite, bevor sie gespeichert wird.
Stolperfallen
- Einträge hinter der Grenze sind still. Sie werden nie gelesen und erscheinen deshalb auch nicht als abgelehnt. Ein Import mit 2500 Dateien meldet 2000 Icons und keine Warnung. Zähl nach, was du erwartest.
- Die Reihenfolge im Archiv entscheidet. Welche 2000 Dateien durchkommen, hängt von der Reihenfolge im ZIP ab, nicht vom Manifest.
- Null heißt nichts. Gibst du
0,nulloderfalsezurück, stoppt jeder ZIP-Import der Seite. - Der Speicher wächst mit. Jeder Eintrag liegt im Speicher, dann noch einmal mit Label, dann noch einmal vorbereitet. Rechne mit etwa dem Dreifachen der erlaubten Bytes.
- Nicht für Ordner. Theme-Ordner und Drop-ins unter
wp-content/easy-svg-iconsnutzen stattdesseneasy_svg_pro_source_max_icons.