Stundenplan

function display_stundenplan() {
$args = array(
‹post_type› => ‹termin›,
‹posts_per_page› => -1,
‹orderby› => ‹meta_value›, // Sortierung z.B. nach Datum oder Uhrzeit
‹order› => ‹ASC›,
// Weitere Filter, falls nötig, z.B. nach Kurs oder Wochentag
);
$query = new WP_Query( $args );
$output = ‹

‹;
$output .= ‹

‹;

if( $query->have_posts() ) {
while( $query->have_posts() ) {
$query->the_post();
$wochentag = get_post_meta( get_the_ID(), ‹wochentag›, true );
$startzeit = date(‹H:i›, strtotime(get_post_meta( get_the_ID(), ’startzeit›, true )));
$endzeit = date(‹H:i›, strtotime(get_post_meta( get_the_ID(), ‹endzeit›, true )));
// Beziehung zu Kursen: Hier holen wir den Kursnamen (wie in deiner Termin-Titel-Generierung)
$kurs_id_array = (array)get_post_meta( get_the_ID(), ‹zugehoeriger_kurs›, false );
$kurs_namen = [];
if( is_array($kurs_id_array) && !empty($kurs_id_array) ) {
foreach( $kurs_id_array as $kurs_id ) {
$kurs_post = get_post( intval($kurs_id) );
if( $kurs_post ) {
$kurs_namen[] = $kurs_post->post_title;
}
}
}
$kurs = !empty($kurs_namen) ? implode(«, «, $kurs_namen) : ‹Unbekannter Kurs›;

$output .= ‹

‹;
$output .= ‹

‹;
$output .= ‹

‹;
$output .= ‹

‹;
$output .= ‹

‹;
}
wp_reset_postdata();
} else {
$output .= ‹

‹;
}
$output .= ‹

Wochentag Kurs Uhrzeit
‹ . esc_html($wochentag) . ‹ ‹ . esc_html($kurs) . ‹ ‹ . esc_html($startzeit) . ‹ – ‹ . esc_html($endzeit) . ‹
Keine Termine gefunden.

‹;
return $output;
}
add_shortcode(’stundenplan›, ‹display_stundenplan›);

WochentagUhrzeitKursAlterskategorie
Montag15:20 – 16:20Ballett 1CUnbekannt
Montag16:30 – 17:30Kindertanz, Ballett 1A4 – 6
Montag18:45 – 19:45Ballett 2A10 – 13
Montag19:50 – 20:50Ballett 3C14 – 17
Dienstag19:15 – 20:30Ballett 3A, Ballett 3C14 – 17
Dienstag20:30 – 21:00Spitzentanz (Ballett)4 – 6
Mittwoch20:00 – 21:00Body FormingUnbekannt
Donnerstag16:30 – 17:30Ballett 1AUnbekannt
Donnerstag17:40 – 18:40Ballett 1CUnbekannt
Donnerstag18:45 – 20:00Ballett 3A, Ballett 3C14 – 17
Donnerstag20:00 – 21:00Erwachsenen BallettUnbekannt
Freitag09:30 – 10:30PilatesUnbekannt
Freitag16:40 – 17:55Modern DanceUnbekannt
Freitag18:00 – 19:15Ballett 2A10 – 13