Support » Themes » Text abhängig von Zeit und aktuellem Termin ändern

  • Hallo zusammen,
    ich bin mir gar nicht sicher, ob dies der richtige Bereich ist. Ich benutze das Salient Theme (eventuell ist die Frage auch unabhängig davon) und hätte gerne einen Lösungsansatz oder eine Pluginempfehlung für das folgende Szenario:

    Für eine Fahrschulseite gibt es einen wöchentlichen Unterricht; in jeder Woche wird ein anderes Thema behandelt. Es gibt im Hintergrund eine Liste mit n verschiedenen Themen und jede Woche soll das Thema selbstständig wechseln und wieder bei 1 anfangen, nachdem das letzte Thema erreicht wurde. Zusätzlich gibt es mehrere Filialen mit unterschiedlichen Themen bzw. anderem Rhythmus, was gerade behandelt wird.

    Jetzt würde ich diese automatische Darstellung gerne für die Hauptseite übernehmen, also dort immer das dem aktuellen Termin entsprechende Thema ausgehend von dem der letzten Woche bestimmen und anzeigen, welche Möglichkeiten gibt es dazu?

    Danke schonmal!

Ansicht von 1 Antwort (von insgesamt 1)
  • Wie gut kannst du programmieren?

    Deine Anforderung lässt sich sicherlich mit einem Custom Post Type mit einem benutzerdefinierten Feld und einer Meta-Query lösen. Den Custom Post Type kannst du bequem mit Custom Post Type UI anlegen, die benutzerdefinierte Felder mit Advanced Custom Fields. Dann erstellst du eine neue Webseite „Fahrschule“ und legst in einem Child Theme für diese Seite ein Seiten-Template page-fahrschule.php an. Dazu kopierst du am besten vom Parent Theme das Template page.php und ersetzt die Loop mit der nachfolgenden Abfrage.

    <?php
    $date = new DateTime('now');
    $week = $date->format("W");
    $branch = 7;
    $index = $week + $branch - 1; 
    $meta_query_args = array(
            'post_type' => 'fahrschule',
    	array(
    		'key'     => '_fahrschul_index',
    		'value'   => $index,
    		'compare' => 'IN'
    	)
    );
    $meta_query = new WP_Meta_Query( $meta_query_args );
    // The Loop
    if ( $meta_query->have_posts() ) {
        while ( $meta_query->have_posts() ) {
            $meta_query->the_post();
            // Inhalt ausgeben
        }
    } else {
        // Hinweis, wenn kein Beitrag gefunden wurde
    }
    
    // Restore original Post Data
    wp_reset_postdata();
    

    Die Abfrage würde für die Fahrschule mit der Zweigstellen-Nummer 7 in Kalenderwoche 42 einen Beitrag (oder auch mehrere Beiträge) des Custom Post Type fahrschule abrufen, bei der das benutzerdefnierte Feld den Wert 49 enthält. (Kalenderwoche 42 + Zweistelle 7 = Index-Wert 49).
    Durch den Vergleichsoperator „IN“ kannst du Beiträgen auch mehrere Werte zuweisen. Damit wäre es einerseits möglich, dass Beiträge wiederholt werden. Andererseits kannst du den ersten Beiträgen einen Wert > 52 zuweisen, damit alle Beiträge rotieren.

Ansicht von 1 Antwort (von insgesamt 1)
  • Das Thema „Text abhängig von Zeit und aktuellem Termin ändern“ ist für neue Antworten geschlossen.