- Added update_post() method to WordPress API client
- Added _put() method for HTTP PUT requests
- Modified create_post() to call update_post() when duplicate is found
- Existing posts now get updated with latest content, tags, categories, dates, etc.
- Prevents manual deletion and re-creation workflow
- Added excerpt as explicit parameter to create_post()
- Debug output shows 'Aktualisiere...' message when updating
Example: Re-running import on existing post now updates all fields including newly added author tags
Problem:
- Tags/Kategorien wurden als existierend erkannt, aber nicht dem Beitrag zugewiesen
- WordPress-API gibt bei 'term_exists'-Fehler die term_id in den Fehler-Daten zurück
- Diese term_id wurde nicht genutzt, stattdessen wurde nur erneut gesucht
Lösung:
- Extrahiere term_id direkt aus error_data['data']['term_id']
- Bei term_exists-Code: Nutze die zurückgegebene term_id
- Fallback: Suche erneut falls Extraktion fehlschlägt
- Gezielte Suche mit 'search'-Parameter für bessere Performance
Verbesserungen:
- get_tags() und get_categories() mit optionalem search-Parameter
- Debug-Ausgaben: '→ Tag gefunden' statt nur bei Erstellung
- Reduziert API-Calls durch gezielte Suche
Expected Output:
Tags aus Frontmatter: ['OER', 'OEP', ...]
→ Tag 'OER' gefunden (ID: 3866)
→ Tag 'OEP' existiert bereits (ID: 3867)
Gesamt Tag-IDs: [3866, 3867, ...]
Fixes:
- Unterstützung für flaches Frontmatter (wenn #commonMetadata: als Kommentar)
- creativeWorkStatus direkt im Frontmatter wird jetzt erkannt
- datePublished direkt im Frontmatter wird jetzt erkannt
- Status 'Published' wird zu 'publish' konvertiert (mit 'publish' in lowercase)
- date_gmt für explizite Datumskontrolle hinzugefügt
Debug-Ausgaben:
- Tag-Verarbeitung: Zeigt gefundene Tags und IDs
- Post-Erstellung: Zeigt gesendete Daten (Tags, Kategorien, Datum)
- WordPress-Response: Zeigt zurückgegebene Tags und Datum
- Verbesserte Erfolgsmeldung mit ✅
Getestet mit content/beispiel-beitrag.md:
✅ Status: publish
✅ Datum: 2025-09-02
✅ Tags: 6 Stück korrekt extrahiert
Fixes:
- Tag/Kategorie-Erstellung: Bessere Fehlerbehandlung für bereits existierende Tags
- Post-Duplikatsprüfung: Verbesserte Suche mit status='any' und case-insensitive Vergleich
- Veröffentlichungsdatum: datePublished aus Frontmatter wird als WordPress-Datum gesetzt
- Erweiterte Datumsextraktion aus verschiedenen Frontmatter-Strukturen
Neue Datei:
- USAGE_MODES.md: Übersicht der drei Verwendungsmodi