Importeasy_svg_pro_import_max_entries

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:

Parameter

body
$maxint
Required

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

returnint

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:

WegWo
Set-ImportPOST /easy-svg-pro/v1/sets/{id}/import mit einem .zip
Paket-UploadIcons → Pakete, POST /easy-svg-pro/v1/packs/import
Font-Awesome-DownloadIcons → Pakete mit eingeschaltetem Font-Awesome-Import
Preset-InstallationPOST /easy-svg-pro/v1/presets/install
Kommandozeilewp easy-svg pack import

Für jeden Eintrag, in der Reihenfolge des Archivs, macht der Leser Folgendes:

  1. Er hört auf, sobald die Zahl der behaltenen Einträge deine Grenze erreicht hat.
  2. Er überspringt einen Namen mit .. oder einem führenden /.
  3. Er überspringt alles, was nicht manifest.json oder eine .svg-Datei ist.
  4. 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.
  5. Er addiert die Bytes zu einer laufenden Summe und hört auf, wenn sie die Gesamtgrenze übersteigt.
  6. 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, null oder false zurü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-icons nutzen stattdessen easy_svg_pro_source_max_icons.

Siehe auch