WordPress plugin that displays the DACH training team's meetings on a WordPress page. The data source is a JSON file generated by a GitHub Action from the issues in the team repository.
- Shortcode
[training_meeting_tracker]with attributesshow_upcoming,show_in_progress,show_past,years. - Upcoming meetings: every issue without the
Erledigtlabel whose date lies in the future (date, time, link to issue). - Meetings in progress: every issue without the
Erledigtlabel whose date already passed. This is the minutes pipeline. - Past minutes: every issue with the
Erledigtlabel, grouped by year. - Date format on the frontend:
DD.MM.YYYY. - Settings page under Settings, Training Meeting Tracker.
- Transient cache with configurable duration, fallback to last good response on error.
- Full i18n (source strings in English, German translation
de_DEincluded). - Cleans up its own data on uninstall.
- Download the ZIP from the Releases page and install it under Plugins, Add New, Upload Plugin.
- Activate the plugin.
- Open Settings, Training Meeting Tracker, and verify the JSON URL. Default is
https://raw.githubusercontent.com/rfluethi/learn-wp-dach-team/data/sitzungen.json. - Place the shortcode
[training_meeting_tracker]on a page.
[training_meeting_tracker]
[training_meeting_tracker show_upcoming="true" show_in_progress="true" show_past="true" years="3"]
| Attribute | Default | Values | Meaning |
|---|---|---|---|
show_upcoming |
true |
true or false |
Show the Upcoming meetings block. |
show_in_progress |
true |
true or false |
Show the Meetings in progress block. |
show_past |
true |
true or false |
Show the Past minutes block. |
years |
all |
all or integer |
Number of years shown in the past block (newest first). |
show_next |
(none) | true or false |
Legacy alias for show_upcoming. |
- WordPress 6.4 or newer
- PHP 7.4 or newer
The plugin uses a slim two-component setup:
- Team GitHub repository (
rfluethi/learn-wp-dach-team): a GitHub Action reads every issue with thesitzunglabel, parses the title date and the body fields (Veranstaltung:,Uhrzeit:) plus theErledigtlabel, and writes asitzungen.jsonfile (schema v2, three lists) to thedatabranch. - This plugin: fetches the JSON via
wp_remote_get, validates the schema, caches the result as a transient, and renders the shortcode.
The plugin does not talk to the GitHub API directly. It only reads a static JSON file. This avoids token maintenance and rate limit concerns.
training-meeting-tracker/
training-meeting-tracker.php Plugin header, bootstrap, constants
uninstall.php Cleanup on uninstall
readme.txt wp.org format readme
includes/
class-tmtracker-plugin.php Bootstrap class
class-tmtracker-fetcher.php HTTP, cache, schema validation
class-tmtracker-renderer.php HTML rendering, date formatting
class-tmtracker-shortcode.php [training_meeting_tracker]
class-tmtracker-settings.php Settings API, clear cache
assets/css/frontend.css Frontend styles (prefix tmtracker-)
languages/
training-meeting-tracker.pot
training-meeting-tracker-de_DE.po
training-meeting-tracker-de_DE.mo
tests/ Lightweight PHP tests (run-tests.php)
bin/build-zip.sh Local ZIP builder
# Install dev dependencies
composer install
# Run the linter
composer lint
# Auto-fix where possible
composer lint-fix
# Run tests
php tests/run-tests.php
# Build local ZIP (same filter as the release workflow)
bin/build-zip.sh # version taken from the plugin header
bin/build-zip.sh 0.1.0-rc1 # version given explicitly
# Output: dist/training-meeting-tracker-<version>.zipCI runs PHPCS (WordPress Coding Standards) and Plugin Check on every push. Pushing a v* tag triggers the release workflow, which builds the ZIP and attaches it as a GitHub release asset. Details in the release process section of docs/Developer.md.
Four documents, each for a different audience:
| Document | For whom |
|---|---|
| docs/Architecture.md | System overview from issues through action and JSON to plugin and frontend. Good entry point. |
| docs/Developer.md | Developers: code structure, classes, local toolchain, release process. |
| docs/Operations.md | Maintainers: troubleshooting, cache maintenance, schema migration, rollback. |
| docs/User-Guide.md | Team members without a code background. How to maintain meeting issues. |
This plugin is the successor of an earlier internal plugin ("Learn DACH Sitzungen"). That plugin has been retired and its repository removed.