Support » Allgemeine Fragen » Datumsabfrage in einem Shortcode

  • Hallo

    Erläuterung:
    Ich habe eine Funktion die mir alle Termine von einer Event-Serie ausliest (getEventsOfEventSerie).
    Dann fülle ich eine Variable mit 4 Events:

    $nextFourEvents = getEventsOfEventSerie($activeEventtserie['serieId'], '4', 'ASC');

    Ich zeige dann diese 4 Events, oder soviel wie es noch hat, an:

    <?php if (count($nextFourEvents) > 0) {
    
    foreach ($nextFourEvents as $ne) { ?>
    <a href="/events/<?=$ne->post_name?>" target="_blank"><?=$ne->post_title?> (<?=get_field('eventDateTimeFrom', $ne->ID)?>)</a><br />
    <?php

    Frage:
    Wie kann ich beim füllen von $nextFourEvents erreiche, dass ich nur die aktuellsten Events fülle, dass heisst anhand von dem Feld eventDateTimeFrom? Im Moment bekomme ich nur die vom Oktober.

    ich habe insgesamt 6 Termine. 4 wahren im Oktober und 2 sind im November. Eigentlich dürfte er nur noch die im November anzeigen, bzw, je nach dem ob die November-Termine noch in der Zukunft liegt oder nicht.

    Konkret sollte die Variabel $nextFourEvents noch 2 oder nur 1 Event laden.

    Kann man dies irgenwie anhand des aktuellen Datum filtern?

    Vielen Dank für die schnelle Hilfe.
    Gruss Pogi

Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)
  • Im WordPress-Core gibt es (vom Schedule abgesehen) keine „Events“. Du wirst also vermutlich ein Plugin verwenden – welches? Wenn deine Frage sich explizit auf die Verwendung eines Plugins bezieht, bist du vermutlich im Support-Forum dieses Plugins besser aufgehoben. So ist das alles nicht nachvollziehbar und keine Supportfrage.

    Thread-Starter progi

    (@progi)

    Hallo nochmals

    Sorry ich muss es in diesem Fall noch besser erläutern:

    Es geht zum einen nicht um ein Plugin. Es geht um Shortcodes die ich unter „Design“ –> „Editor“ erstellt habe.

    Also ich habe über CPT UI normal ein Post Typ mit dem Namen „Veranstaltungen“ erstellt. Diese Veranstaltungen werden in den Shortcodes mit dem Begriff „Events“ verstanden. Weiter habe ich ein Post Typ mit den Namen „Veranstaltungen Serie“ erstellt, indem ich Veranstaltungen auf einer Seite als Serie zusammenfasse.

    Mit der Funktion getEventsOfEventSerie (innerhalb eines Shortcodes) lese ich alle Veranstaltungen einer aktiven Serie aus. Im Meinem Fall 6 Veranstaltungstermine (sihe Post 1 oben).

    Mit der Codezeile (aus dem unten aufgeführten Shortcode)…
    $nextFourEvents = getEventsOfEventSerie($activeEventtserie['serieId'], '4', 'ASC');
    …lese ich 4 Termine aus, und mit dem weitern Codeteil, zeige ich diese dann an…

    Hier nun der ganze Shortcode:

    function next_event() {
    
        $activeEventserie = getActiveEventSerie();
        //print_r($activeEventserie);
        $nextFourEvents = getEventsOfEventSerie($activeEventserie['serieId'], '4', 'ASC');
        //print_r($nextFourEvents);
        ?>
        <h3><?=$activeEventserie['serieTitle']?></h3>
        <p><?=$activeEventserie['postContent']?></p>
    
        <?php if (count($nextFourEvents) > 1) { ?>
        <h5>Die nächsten Veranstaltungen dieser Serie:</h5>
        <?php } else if (count($nextFourEvents) == 1) { ?>
        <h5>Die nächste Veranstaltung in dieser Serie:</h5>
        <?php } else { ?>
        Die aktuelle Serie endet am Ende dieses Monats.
        <?php } ?>
    
        <?php if (count($nextFourEvents) > 0) {
    
            foreach ($nextFourEvents as $ne) { ?>
                <a href="/events/<?=$ne->post_name?>" target="_blank"><?=$ne->post_title?> (<?=get_field('eventDateTimeFrom', $ne->ID)?>)</a><br />
            <?php
            }
        }
    }
    add_shortcode('next_event', 'next_event');

    Ich benötige nun Hilfe wie ich über das Feld eventDateTimeFrom (gehört zu einer Veranstaltung) in der Variable $nextFourEvents nur die Veranstaltungen zurückbekomme, die vom aktuellen Datum in der Zukunft liegen.

    Ich hoffe es ist nun verständlich und danke für die Hilfe.

    • Diese Antwort wurde geändert vor 4 Jahren, 5 Monaten von progi.

    Es geht um Shortcodes die ich unter „Design“ –> „Editor“ erstellt habe.

    Du hast im Theme-Editor Shortcodes angelegt? Ups.
    Shortcodes gehören ganz gewiss nicht in ein Theme, weil sie bei einem Themewechsel nicht mehr gerendert werden. „Aber ich wechsel das Theme nicht“? Dann erschwert es zumindest die Wartung, wenn du Code an falschen Stellen unterbringst.

    Es geht zum einen nicht um ein Plugin.

    Doch, natürlich. Weil …

    Mit der Funktion getEventsOfEventSerie (innerhalb eines Shortcodes) lese ich alle Veranstaltungen einer aktiven Serie aus.

    Im WordPress Core gibt es weder „Veranstaltungen“, noch die Funktion getEventsOfEventSerie(). Du wirst also ein Plugin verwenden, dass diese Funktion anbietet … oder im schlimmsten Fall ein gekauftes Theme, das sich nicht an Standards hält und die Funktionalität im Theme-Code bereitstellt (viel Spaß mit der Wartung, warum s.o.).

    Kurz: Mit den bisherigen Angaben kann dir keiner weiterhelfen, weil wir den Inhalt der von dir genannten Funktion nicht kennen.

Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)
  • Das Thema „Datumsabfrage in einem Shortcode“ ist für neue Antworten geschlossen.