Bitte informieren Sie sich über Ihre Rabatte

Übersicht & Shortcodes

Dieses Dokument beschreibt alle verfügbaren Shortcodes, Themen-Definitionen und Beispiel-Links für die Ulm-Kalender-Integration.


1️⃣ Themen-Definitionen (topics.txt)

Die Datei topics.txt enthält die Zuordnung von Themen zu Schlagwörtern. Sie liegt im Ordner /wp-content/uploads/ulm-kalender/.

Bundesfestung Ulm: bundesfestung, bundesfestung ulm, donauschwäbisches zentralmuseum, fort albeck, fort friedrichsau, friedrichsau
Söflingen: söflingen, christuskirche, klosterhof
Tipp: Neue Begriffe einfach per Komma anhängen (z. B. soeflingen als Variante von „Söflingen“).

2️⃣ Shortcodes – Übersicht

Die folgenden Shortcodes stehen im Plugin zur Verfügung. Sie können auf beliebigen Seiten oder Beiträgen eingesetzt werden.

Shortcode Funktion / Beschreibung Beispiel-Link
Keine Bilder gefunden. Bitte Verzeichnis und JSON prüfen.
Debug
Array
(
    [dir] => …
    [json] => …
    [candidates] => Array
        (
            [0] => /html/wordpress/…
        )

    [error] => dir not found
)
Öffentliche Galerie mit Filter nach Jahr & Thema. Galerie anzeigen
Keine Bilder für Opt-in gefunden.
Debug
Array
(
    [dir] => …
    [json] => …
    [candidates] => Array
        (
            [0] => /html/wordpress/…
        )

    [error] => dir not found
)
Interaktive Kalenderauswahl mit Titel, Widmung und Bildwahl. Produkt Picker öffnen
Themen (Keyword → Anzahl):

Jahre: 
Zeigt eine Keyword-/Themenstatistik für Bilderdaten an (nur Redaktion). Themen-/Keyword-Statistik
[ulm_kalender_optins] Listet gespeicherte Opt-ins / Bestellungen (intern, CSV-Export möglich). Opt-in Übersicht
Array
(
    [items] => 0
    [tags] => 0
    [other_tags] => 0
    [years] => 0
    [debug] => Array
        (
            [dir] => …
            [json] => …
            [candidates] => Array
                (
                    [0] => /html/wordpress/…
                )

            [error] => dir not found
        )

)
Gibt technische Informationen für Debugzwecke aus (Pfad, JSON, Anzahl Dateien). Debug anzeigen

3️⃣ URL-Parameter (Initiale Filterung)

Die Galerie und der Product Picker unterstützen optionale URL-Parameter, um direkt Themen oder Jahre zu aktivieren.

  • ?topic=Bundesfestung%20Ulm → Aktiviert das Thema „Bundesfestung Ulm“
  • ?topic=S%C3%B6flingen → Aktiviert das Thema „Söflingen“
  • ?year=2024 → Zeigt Bilder aus dem Jahr 2024
  • Kombination möglich: ?topic=S%C3%B6flingen&year=2020

4️⃣ Dateistruktur (Empfohlene Ordner)

Alle Dateien liegen standardmäßig im WordPress-Upload-Ordner. Diese Struktur erleichtert Wartung und Updates:

Pfad / Datei Zweck / Beschreibung
/wp-content/uploads/ulm-kalender/topics.txt Zuweisung: Themenname → Schlagwörter
/wp-content/uploads/ulm-kalender/exclude.txt (optional) Optionale Negativliste (z. B. Ausschluss saisonaler Begriffe)
/wp-content/uploads/kalenderdaten/best-of-2006-2026/itcp.json Metadaten zu Bildern (Titel, Monat, Keywords, Saison)
/wp-content/uploads/kalenderdaten/best-of-2006-2026/ Bilddateien (JPG, PNG, WEBP)
Hinweis: Änderungen an topics.txt greifen sofort. Bei aktivem Cache-Plugin: Cache nach Änderungen leeren.
Nur Admin.

Metadaten & Aktualisierung (Bilder, IPTC/EXIF & JSON)

Das Plugin kann Bild-Metadaten auf zwei Wegen beziehen:

  1. Direkt aus den Bilddateien (IPTC/EXIF) – wird bei jedem Seitenaufruf live ausgelesen.
  2. Aus der itcp.json – falls vorhanden, hat diese Vorrang vor IPTC/EXIF (überschreibt).

Was passiert bei Änderungen an Bildern?

  • Nur Bilddatei aktualisiert (inkl. IPTC): Änderungen sind sofort sichtbar, sofern keine abweichenden Werte in der itcp.json stehen und kein Seiten-/CDN-Cache dazwischen funkt.
  • Bilddatei aktualisiert, aber JSON ist älter/abweichend: Die JSON-Werte überschreiben weiterhin die IPTC-Werte. In diesem Fall JSON neu erzeugen (siehe unten).

Empfohlene Workflows

Variante A – JSON wird genutzt (stabilere, nachvollziehbare Datenbasis)

Wenn die itcp.json aktiv ist, sollte sie nach Änderungen an Bild/Metadaten neu erstellt werden.

Shortcode zum Neuaufbau:

Nur Admin.

Dadurch werden aktuelle IPTC/EXIF-Werte in die JSON übernommen.

Variante B – JSON bewusst umgehen (immer Live-IPTC)

Wenn ausschließlich IPTC/EXIF verwendet werden soll, einfach das json="…/itcp.json"-Attribut in den Shortcodes weglassen. Dann liest das Plugin die Metadaten immer direkt aus den Bilddateien.

Cache-Hinweise

  • Nach Datei-/JSON-Updates ggf. Divi-/Seiten-Cache und Server-/CDN-Cache leeren.
  • Bei Bedarf Browser-Cache umgehen (Hard Reload) oder eine minimale URL-Änderung (Cache-Busting) verwenden.

Optional: „Stale JSON“ automatisch ignorieren

(Optionaler Patch für Fortgeschrittene) – Das Plugin kann so erweitert werden, dass pro Bild geprüft wird: Ist die Bilddatei neuer als der zugehörige JSON-Eintrag? Falls ja, werden die IPTC/EXIF-Werte bevorzugt (verhindert, dass veraltete JSON-Werte aktuelle IPTC-Daten überschreiben).

Einsatzempfehlung: nur wenn häufig Bilder/Metadaten angepasst werden und die JSON nicht immer sofort neu aufgebaut werden kann.

Optionaler Patch (Code-Beispiel)
// Idee in Pseudocode (innerhalb dataset()):
// 1) Zeitstempel der Bilddatei und der JSON-Datei holen
$imgMTime  = @filemtime($imagePath);
$jsonMTime = @filemtime($jsonPath);

// 2) Wenn Bilddatei frischer ist als JSON-Eintrag, nutze IPTC/EXIF statt JSON-Werte
if ($imgMTime && $jsonMTime && $imgMTime > $jsonMTime) {
  $title   = $iptc['title']   ?? $title_from_json;
  $caption = $iptc['caption'] ?? $caption_from_json;
  $keywords= $iptc['keywords']?? $keywords_from_json;
  // usw.
}

Kurz-Checkliste bei „Änderungen werden nicht angezeigt“

  1. Nutze ich gerade JSON oder nur IPTC?
    • Wenn JSON aktiv ist: Neuaufbau mit Nur Admin..
    • Wenn nur IPTC: Shortcode ohne json="…" nutzen.
  2. Cache geleert? (Divi, Server/Plugin, CDN, Browser)
  3. Pfad korrekt? (Ordner & JSON-Datei stimmen exakt)
  4. JSON gültig? (keine leere/defekte Datei)