Wo Einstellungen nicht reichen, greifen Sie über Template-Kopien im Theme und über WordPress-Filter ein – updatesicher und ohne das Plugin selbst zu ändern.
Templates im Theme überschreiben
Für die Detailseiten sucht das Plugin zuerst im aktiven Theme (bzw. Child-Theme) und nimmt erst dann seine eigene Vorlage. Kopieren Sie die Datei aus dem Plugin-Ordner und passen Sie die Kopie an:
| Vorlage im Plugin | Kopie im Theme | Wofür |
|---|---|---|
convention-schedule-planner/templates/single-event.php | ihr-theme/convention-schedule-planner/single-event.php | Detailseite eines Programmpunkts |
convention-schedule-planner/templates/single-speaker.php | ihr-theme/convention-schedule-planner/single-speaker.php | Detailseite eines Sprechers |
convention-schedule-room-monitor/templates/monitor-view.php | ihr-theme/convention-schedule-room-monitor/monitor-view.php | Layout des Raummonitors (Add-on) |
Eine Template-Kopie bekommt keine Plugin-Updates mehr – neue Felder oder Korrekturen erscheinen dort nicht. Vergleichen Sie Ihre Kopie nach Updates mit der Originaldatei, oder ändern Sie, wo möglich, nur per CSS.
Jede Kopie liegt im Theme in einem Unterordner, der so heißt wie der Plugin-Ordner: die beiden Detailseiten in convention-schedule-planner/, die Monitor-Vorlage in convention-schedule-room-monitor/. Eine gleichnamige Datei direkt im Theme-Ordner beachtet das Plugin nicht – so kann die Vorlage eines anderen Themes oder Plugins die Detailseite nicht versehentlich übernehmen. Gilt die Pop-up-Ansicht statt der eigenen Seite, wird single-event.php nicht benutzt.
Filter und Aktionen
| Hook | Art | Wofür |
|---|---|---|
event_calendar_stop_words | Filter ($stop_words) | Eigene Füllwörter, die bei „Verwandte Veranstaltungen“ nicht als Gemeinsamkeit zählen. |
ec_json_ld_enabled | Filter (true) | Schaltet die strukturierten Daten (JSON-LD) auf Detailseiten ab – etwa wenn ein SEO-Plugin eigene Event-Daten ausgibt. |
ecrm_template_path | Filter ($pfad, $name) | Eigener Pfad für die Monitor-Vorlage des Raummonitor-Add-ons. |
ec_label_structure | Filter ($gruppen) | Eigene Gruppen und Texte im Reiter „Texte & Labels“. Gespeichert wird automatisch als Option ec_label_<schlüssel>. |
ec_addon_shortcodes | Filter ($shortcodes) | Platzhalter für Shortcodes eines Add-ons: Ist es deaktiviert, sehen Besucher nichts statt rohen Shortcode-Text. |
ec_settings_backup_excluded_keys | Filter ($schlüssel) | Optionen, die nicht in die Einstellungssicherung sollen. |
ec_settings_design_cards / ec_settings_design_save | Aktionen | Eigene Einstellungskarte im Reiter „Live-Ticker“ ausgeben und speichern. |
ec_help_tab_sections | Aktion | Eigene Karte in der Plugin-Hilfe (nach der Shortcode-Dokumentation). |
ec_shortcode_generator_types, ec_shortcode_generator_fields, ec_shortcode_generator_field_types | Aktionen / Filter | Eigene Shortcodes im Shortcode-Generator anbieten. |
Beispiele für functions.php
add_filter( 'event_calendar_stop_words', function( $stop_words ) {
return array_merge( $stop_words, array( 'lesung', 'spezial', 'teil' ) );
} );Die Liste enthält bereits Artikel, Präpositionen und typische Veranstaltungsbegriffe in elf Sprachen. Alternativ lassen sich Füllwörter ohne Code über die Übersetzungsdatei ergänzen – die Plugin-Hilfe beschreibt den Weg mit Poedit oder Loco Translate.
add_filter( 'ec_json_ld_enabled', '__return_false' );add_filter( 'ec_label_structure', function( $groups ) {
$groups['Mein Add-on'] = array(
'my_badge' => 'Neu',
);
return $groups;
} );
// Ausgabe: get_option( 'ec_label_my_badge', 'Neu' )Daten von außen lesen
Für Apps und Partner-Websites ist die öffentliche REST-API der richtige Weg – mit festem Datenformat, das sich bei Updates nicht ändert. Die internen Datenquellen des Kalenders sind dafür nicht gedacht.
Für reine Gestaltungsänderungen reichen meist CSS-Variablen und Klassen – siehe CSS-Anpassung.