ICS-Export bei Einzelveranstaltungen zurückbringen

Im Plugin „The Events Calendar“ gibt es bei Einzelveranstaltungen ein Dropdown, mit dem Veranstaltungen zu Eurem Kalender hinzugefügt werden können. Leider hat sich im Laufe der Zeit ein etwas unlogisches Verhalten eingeschlichen.

Das Dropdown bietet an der Stelle die Möglichkeit, die einzelne Veranstaltung in einem Kalender Eurer Wahl zu abonnieren. Das ist aber überhaupt nicht praktisch. Für jede einzelne Veranstaltung wird dann jeweils ein Kalender-Abonnement angelegt. Eigentlich möchte man an der Stelle ja nur eine .ics-Datei herunterladen, die dann einfach in den Kalender ohne Abonnement importiert werden kann. Genau dieser Link war es auch in früheren Versionen des Plugins im Dropdown (bzw. als Button, bevor es das Dropdown gab) verfügbar.

Mit den drei Code-Snippets wird der ICS-Export wieder dem Dropdown hinzugefügt:

Leider gibt es einen Unterschied zwischen Events, die den Classic Editor verwenden, und Events, die mit dem Block Editor erstellt wurden.

Mit dem Classic Editor kann die Funktion mit einem simplen Filter (tec_views_v2_subscribe_link_ics_visibility, Zeile 3) wieder aktiviert werden. Der Link erscheint dann leider wie im Screenshot am Ende der Linkliste. Mit dem zweiten Filter im Gist (Zeile 5–12) kann der ICS-Link an die erste Stelle gesetzt werden.

Wird der Block Editor verwendet, wird der Filter tec_views_v2_subscribe_link_ics_visibility leider gar nicht mehr angeboten und die Funktion fällt einfach weg. Zum Glück kann man die HTML-Ausgabe der Blockelemente beeinflussen und den Link so hinzufügen (ab Zeile 15 im Gist).

Komischerweise funktioniert die Funktion tribe_get_single_ical_link() auch bei Block Editor-Veranstaltungen ohne Einschränkungen. Der ICS-Export wird im Block nur einfach nicht angeboten. Warum das so gehandhabt wird, kann ich mir beim besten Willen nicht erklären.

Noch verwirrender ist, dass der ICS-Export auf Archivseiten, wie der Kalenderansicht, immer noch angeboten wird (auch ohne Aktivierung per Filter).

Es wird sowohl ein ICS-Export, wie auch ein Outlook-Export angeboten. Dabei ist an dieser Stelle eigentlich das Abonnement viel sinnvoller. Denn einen ganzen Kalender möchte man ja abonnieren, ganz im Gegenteil zu einer einzelnen Veranstaltung.

Die Benennung in den Dropdowns deutet sogar schon das gewünschte Verhalten an:

Im Archiv:
Subscribe to calendar = Kalender abonnieren

Bei Einzelveranstaltungen:
Add to calendar = Zum Kalender hinzufügen

Nur leider bieten dann die Links von Haus aus nicht mehr die gewünschten Funktionen an 🙂