WP-CLIwp easy-svg pack import

wp easy-svg pack import

Liest ein Paket-ZIP als neues, veröffentlichtes Icon-Set ein, jedes Icon bereinigt und gehärtet, Slug wählbar mit --as. Ins Dateisystem wird nichts geschrieben.

WP-CLI-Befehl · Easy SVG Pro · Status: Stabil

Dieser Befehl liest ein Paket-ZIP und speichert es als neues Icon-Set in der Datenbank. Jedes Icon läuft vorher durch Sanitizer und Härter dieser Seite, genau wie ein Upload im Tab Pakete. Entpackt wird nichts. Nach dem Import ist das Set ein ganz normales Icon-Set, das du im Set-Editor bearbeiten kannst.

Verwendung

wp easy-svg pack import <file> [--as=<slug>]

Wann du es brauchst

  • Du hast ein Set mit wp easy-svg pack export exportiert und willst es auf einer anderen Seite haben.
  • Ein Provisioning-Skript richtet neue Kundenseiten mit den Standard-Icon-Sets der Agentur ein.
  • Du hast von einer Designerin ein Paket bekommen und willst es in der Datenbank statt als Dateien.

Nicht geeignet, wenn du Schlagwörter behalten willst. Ein Icon-Set speichert pro Icon nur Name und Bezeichnung. Entpack das Paket stattdessen nach wp-content/easy-svg-icons/<slug>/, dort bleibt das Manifest, wie es ist.

Parameter

query
filepositional
Required

Pfad zum Paket-ZIP. Der Benutzer, unter dem WP-CLI läuft, muss die Datei lesen können.

query
--asoption

Der Slug, unter dem das Set gespeichert wird, statt des Slugs aus dem Manifest. Gib einen kleingeschriebenen Slug wie brand-icons an: Der Befehl macht selbst keinen Slug daraus.

Rückgabewert

stdouttext

Eine Warnung pro abgelehntem Icon (Warning: logo.svg was not imported.), eine Warnung, wenn der Slug vergeben war (acme was taken; registering as acme-2.), und eine Erfolgszeile: Success: 48 icons imported as acme.

exit codeint

0, wenn das Set gespeichert wurde, auch mit Warnungen. 1, wenn Lizenz oder Funktion WP-CLI aus sind, die Datei nicht lesbar ist, Easy SVG Support inaktiv oder zu alt zum Härten ist, kein Icon der Datei akzeptiert wurde, kein freier Slug gefunden wurde oder das Set nicht gespeichert werden konnte.

Standardwert

Der Slug kommt aus --as, sonst aus slug im Manifest, sonst heißt er pack.

Beispiele

Ein Paket importieren

wp easy-svg pack import acme.zip

Eine neue Kundenseite einrichten

#!/usr/bin/env bash
set -euo pipefail

for pack in /srv/agency/packs/*.zip; do
	slug="$(basename "$pack" .zip)"
	wp easy-svg pack import "$pack" --as="$slug"
done
wp easy-svg icons list

Unter festem Namen importieren und bei Kollision abbrechen

Der Befehl scheitert nie an einem vergebenen Slug, er weicht auf -2 aus. Hängen Templates am genauen Slug, prüf es selbst:

out="$(wp easy-svg pack import brand.zip --as=brand 2>&1)"
echo "$out"
if grep -q 'was taken' <<<"$out"; then
	echo "brand gibt es schon. Das neue Set hat einen anderen Slug, Templates finden es nicht." >&2
	exit 1
fi

Defensiv: sicherstellen, dass das Set auch erscheint

wp plugin is-active easy-svg || { echo "Easy SVG Support ist inaktiv" >&2; exit 1; }
wp option get easy_svg_pro_features --format=json | jq -e '.editor == true' >/dev/null \
	|| echo "Warnung: Icon-Set-Editor ist aus, das Set wird gespeichert, aber nicht als Sammlung genutzt." >&2
wp easy-svg pack import brand.zip --as=brand

So funktioniert es

  1. Das Archiv liest derselbe ZIP-Leser wie der Upload unter Pakete, die Preset-Installation und der Set-Import. Gelesen werden nur .svg-Einträge und manifest.json, Pfade mit .. oder führendem / werden übersprungen, und es gelten die Grenzen aus easy_svg_pro_import_max_entries (2000 Einträge), easy_svg_pro_import_max_total_bytes (16 MB) sowie die Größengrenze pro Datei aus dem kostenlosen Plugin.
  2. Das Manifest benennt die Icons und liefert Bezeichnungen. Ein SVG ohne Eintrag wird trotzdem importiert, benannt nach seiner Datei.
  3. Jedes Icon wird bereinigt und gehärtet. Was das nicht übersteht, erscheint als Warnung.
  4. Der Slug kommt aus --as, dem Manifest oder ist pack. Gibt es schon eine Sammlung dieses Namens, probiert der Befehl -2, -3 und so weiter bis -999 und warnt.
  5. Ein veröffentlichter Post vom Typ easy_svg_set entsteht, mit der Bezeichnung aus dem Manifest als Titel. Als Herkunft wird import-cli gespeichert, dazu license, author und source aus dem Manifest. Der Tab Pakete zeigt sie an.
  6. Die Icons werden über die eine Funktion geschrieben, über die jeder Set-Schreibvorgang läuft. Sie nimmt die Set-Sperre und löst easy_svg_pro_set_icons_written aus, also sehen Icon-Verlauf und deine eigenen Listener den Import.

Stolperfallen

  • Schlagwörter gehen verloren. Ein Set speichert pro Icon nur Name und Bezeichnung.
  • Eine Kollision stoppt den Import nicht. Das Set landet mit nur einer Warnung und Exit-Code 0 unter slug-2. Skripte, die einen festen Slug brauchen, müssen die Ausgabe prüfen.
  • --as wird so genommen, wie es ist. --as="My Brand" wird als My Brand auf Kollision geprüft, dann macht WordPress den Post-Slug my-brand daraus, und die Erfolgszeile meldet trotzdem My Brand. Gib immer einen kleingeschriebenen Slug an.
  • Stille Grenzen. Einträge jenseits der Eintragsgrenze oder der Gesamtgröße und Dateien über der Grenze pro Datei werden nie gelesen und deshalb auch nicht als abgelehnt gemeldet. Ein großes Paket kann kleiner ankommen, als es ist. Vergleich die Zahl in der Erfolgszeile mit dem Paket.
  • Der Icon-Set-Editor entscheidet über die Sichtbarkeit. Das Set wird auch bei ausgeschalteter Funktion gespeichert, als Sammlung registriert wird es aber nur, solange sie an ist.
  • Jeder Lauf erzeugt ein neues Set. Importierst du dasselbe Paket zweimal, hast du acme und acme-2. Einen Update-Modus gibt es nicht.

Siehe auch