WP-CLI: Feeds per Befehl
Feeds von der Kommandozeile erzeugen und prüfen, mit Exit-Codes für Skripte.
Gilt ab Tarvexa 1.3 · WooCommerceAuf einen Blick
Mit WP-CLI erzeugst und prüfst du Feeds von der Kommandozeile, für Deployments, Cron-Jobs und Monitoring. Die Befehle rufen denselben Code auf wie die Schaltfläche „Jetzt neu erzeugen“ im Backend, ein Feed sieht also aus wie sonst auch.
wp tarvexa feed listListet die Profilewp tarvexa feed generateErzeugt Feeds jetzt, im laufenden Prozesswp tarvexa feed statusZeigt den letzten Lauf und prüft ihnwp tarvexa feed logZeigt das Protokoll der Läufe (ab Tarvexa 1.4.0)list und status laufen immer. generate braucht eine gültige Lizenz: Ist sie gesperrt, nennt der Befehl den Grund und ändert nichts.
Profile auflisten
wp tarvexa feed list wp tarvexa feed list --format=ids wp tarvexa feed list --format=json --fields=id,name,url
Die Felder: id, name, portal, format, delivery (file oder download), status, rows, last_run, next_run, url und problem. Als Format gehen table, json, csv, ids und count.
Feeds erzeugen
wp tarvexa feed generate --all wp tarvexa feed generate 42 wp tarvexa feed generate "idealo Hauptfeed" "Google Shopping"
Ein Profil nennst du mit seiner ID oder seinem Namen. Stimmt ein Name auf mehrere Profile, bricht der Befehl ab und verlangt die ID. --all nimmt jedes Profil, das eine Datei schreibt.
- Synchron. Der Befehl wartet, bis die Datei geschrieben ist, und gibt je Profil die Zahl der Zeilen aus. Ein gleichzeitig laufender Lauf desselben Profils (zum Beispiel vom Zeitplan) wird nicht gestört: Der Befehl meldet „läuft bereits“ und ändert nichts.
- Zeilen-Schutz. Hätte die neue Datei weniger als die Hälfte der bisherigen Zeilen, bleibt die alte Datei und der Befehl endet mit einem Fehler. Ist die Verkleinerung Absicht, hängst du
--accept-dropan, so wie „Trotzdem veröffentlichen“ im Backend. - Exporte mit Kundendaten. Profile, die nur zum Herunterladen da sind (Bestellungen, Kunden), schreiben nie eine Datei.
--allüberspringt sie, nennst du eines ausdrücklich, ist das ein Fehler. Diese Exporte holst du im Backend.
Feeds prüfen
wp tarvexa feed status wp tarvexa feed status 42
Für jedes Profil siehst du Status, Zeilen, letzten und nächsten Lauf. Bei einem einzelnen Profil folgen darunter die Hinweise des Validators mit ihrer Häufigkeit, in denselben Worten wie im Backend.
Protokoll lesen
wp tarvexa feed log wp tarvexa feed log 42 --limit=5 wp tarvexa feed log --format=json --fields=time,name,result,rows
Das sind dieselben Einträge wie unter Tarvexa → Protokoll, neueste zuerst. Die Felder: time (UTC), id, name, result, rows, seconds, trigger und note. Ohne Profil siehst du alle Feeds, ohne --limit die letzten 20 Einträge. Der Befehl ändert nichts und endet immer mit Code 0. Siehe Feed-Protokoll.
Exit-Codes
Die Befehle sind für Skripte gebaut:
generate: mindestens ein Lauf ist gescheitert, oder die Lizenz ist gesperrt, oder ein Profil existiert nicht. status: mindestens ein Feed braucht einen Blick (Fehler, vom Zeilen-Schutz angehalten, Lizenz).Ein Cron-Job, der jede Nacht alle Feeds erneuert und bei einem Fehler Alarm schlägt:
wp tarvexa feed generate --all --path=/var/www/shop || mail -s "Feed-Fehler" admin@example.com < /dev/null
Multisite
In einem Netzwerk wählst du die Seite mit --url: Lizenz, Profile und Dateien gehören zu einer Seite.
wp tarvexa feed generate --all --url=https://shop.example.com/de/