The Events Calendar - vergange Termine aus Suche und Archiven ausblenden

  • Howdy Folks,

    in unserer Tischtennis-Seite (http://goo.gl/7Jp78i) setzen wir The Events Calendar von Modern Tribe ein, um den Spielplan und weitere Termine zu kommunizieren. Das funktioniert soweit weit auch gut, und vergangene Termine werden in der Terminübersicht auch nicht mehr angezeigt. Allerdings tauchen die alten Termine noch immer in der Suche und in Archiven auf. Wenn ich z.B. das Schlagwort "herren i" auswähle, erscheinen alle Berichte zu unserer Ersten, dazu alle Termine, auch die vergangenen. Gibt es da die Möglichkeit, vergangene Termine auszufiltern?

    Für die Suchergebnisse habe ich ein Plugin installiert, welches mir zumindest das manuelle Ausblenden vergangener Termine aus Suchergebnisseiten ermöglicht. Auch das würde ich gerne automatisieren, sollte es möglich sein.

    Daher meine Frage: Wie kann ich es bewerkstelligen, dass vergangene Termine auf Archiv- und Suchergebnisseiten automatisch ausgeblendet werden? Ich habe schon mal über den Ansatz Custom Post Type nachgedacht, denn die Termine nutzen einen solchen (tribe_events). Das würde dann allerdings auch künftige Termine ausblenden. Zur Not würde ich das hinnehmen, aber auch die Nutzung einen anderen Termin-Plugins ist nicht ausgeschlossen.

    Keep it Country,
    Markus aka Cowboy

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • ab version 3.6 kann man doch veraltete wiederkehrende Termine einfach löschen lassen,
    oder verwechsel ich da grad was

    Events —> Settings —> General

  • In Version 4.0.5 finde ich keine solche Einstellung. Mag sein, dass es das in der Pro-Version gibt, die ist mir aber mit US$ 89 pro Jahr ein bisschen zu teuer. Der Verein hat keine große Kasse, um solche solche laufenden Kosten auch noch zu stemmen.

  • "undamenhafter Ausdruck" :-)

    einfach alle Beiträge dieses custom post types, die älter als "30tage" ab heute sind mit einem meta query und pre get post, geht auch nicht?

  • Wäre ein Ansatz, nur würde sich die Abfrage alle Termine krallen, die vor mehr als 30 Tagen erstellt wurden. Auch das "Durchblättern" der Termine orientiert sich nicht am Termin selbst, sondern am Erstellzeitpunkt. Wie bei normalen Posts.

  • geschlafen,
    der 2.Kaffee ist in mir

    nachgedacht

    gesucht,

    Anfang gefunden

    ==> das ist die Kurzfassung meiner Idee :-) :-)

    https://theeventscalendar.com/function/tribe_is_past/

    https://gist.github.com/jo-snips/2415009

    ob die nur in der Kaufversion zur Verfügung stehen => weiß ich nicht

    aber in diese Richtung könnte man eine Abfrage starten oder?

  • Jetzt hat es ein dreiviertel Jahr gedauert, aber gestern Abend habe ich die Lösung gefunden:
    Ich nutze den Hook "pre_get_post" und teile ihm mit, welche Beitragstypen ich anzeigen will. Dabei lasse ich natürlich den Typ "tribe-events" weg:

    PHP
    function exclude_events( $query ) {
      if( is_category() || is_tag() || is_search() && $query->is_main_query ) {
        $query->set( 'post_type', array(
         'post', 'nav_menu_item'
            ));
          return $query;
        }
    }
    add_action( 'pre_get_posts', 'exclude_events' );


    Ich will also nur Beiträge ausgeben. Den Menüeinträge muss ich angeben, weil das Menü sonst auch verschwunden ist.

    Das ganze in die functions.php des verwendeten Themes einfügen, und fertig.

  • Nachtrag: Natürlich gehört die Selektion der Archivtypen in Klammern (Zeile 2).

    PHP
    if( ( is_category() || is_tag() || is_search() ) && $query->is_main_query ) {

    Ansonsten zeigt das Sidebar-Widget des Plugins außer auf Suchergebnisseiten keine Termine an.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!