• Gelöst swissmandal

    (@swissmandal)


    Hallo zusammen

    Ich habe mir ein Plugin erstellt das über das Backend Ereignisse in eine Tabelle abfüllen lassen kann, das funktioniert auch wie es soll. Im Frontend werden die auch angezeigt, da habe ich jetzt aber noch ein Dropdown Feld eingefügt das die Ereignisse pro Jahr gefiltert aus der Datenbank ausgibt.

    Spannend ist nun das ich das Jahr 2024 auswählen kann und alles korrekt läuft, wenn ich auf 2025 oder ein anders Jahr in der Vergangenheit stelle kommt das die Seite nicht gefunden wird (WordPress Standard Seite).

    Ich weiss der Code ist aktuell noch nicht schön aber mir geht es aktuell darum ob das funktioniert was ich möchte.

    Code für die Dropdown Liste:

    $output = '<form method="GET" action="'. esc_url(get_permalink()) .'" style="margin-bottom: 20px;">';
    $output .= '<label for="year">Jahr auswählen:</label>';
    $output .= '<select id="year" name="year" onchange="this.form.submit()">';
    foreach ($valid_years as $available_year) {
    $selected = ($available_year == $year) ? 'selected' : '';
    $output .= "<option value='$available_year' $selected>$available_year</option>";
    }
    $output .= '</select></form>';

    Aktuell nehme ich das Jahr und prüfe nur ob es eine Zahl und 4 Zeichen lang ist, was ich auch ausgeben lassen kann.

    Kennt das Problem evtl. jemand oder was mache ich falsch?

Ansicht von 7 Antworten – 1 bis 7 (von insgesamt 7)
  • Moderator threadi

    (@threadi)

    Mir ist unklar was Du mit „abfüllen“ meinst und was das Backend mit dem Frontend an der Stelle zu tun hat. Auch frage ich mich nach was das Formular filtern soll. Geht es um Beitrags-Archive? Oder Seiten? Welche URL entsteht, wenn du das Formular abschickst? Welche geht, welche nicht? Etwas mehr Infos dazu wären gut um dir helfen zu können.

    Thread-Starter swissmandal

    (@swissmandal)

    Wollte damit nur sagen das im Backend (wp-admin) ich über das Formular Ereignisse hinzufügen kann die dann über das Frontend ersichtlich sind. Im Frontend werden die Ereignisse anhand des Jahres in dem die erstellt werden gefiltert damit die Liste nicht unnötig lange ist.

    Wenn ich über das Dropdown feld das Jahr auswähle wird die Url geändert auf /ereignisse/?year=2023 was ausser beim Jahr 2024 zu einem „Diese Seite scheint nicht zu existieren.“ führt, was ich mir nicht erklären kann wenn 2024 ja funktioniert…

    Moderator threadi

    (@threadi)

    Was ist „ereignisse“? Dein eigener Post-Type oder eine Taxonomie?

    Thread-Starter swissmandal

    (@swissmandal)

    Es geht um eine Firma die gewisse Ereignisse in einer Liste Dokumentieren will, das kann ein nächtlicher Einsatz oder sonst was sein, das wird in dem für das erstellten Plugin eingetragen.

    Datum; Beschreibung, etc…

    Es hat auch gar nichts damit zu tun den das ganze funktioniert einzig der Filter in dem man im Jahr zurückgehen kann funktioniert halt nicht.

    Moderator threadi

    (@threadi)

    Mir ging es bei der Frage eher um die technische Natur dieser URL. Wenn es ein Post Type oder eine Taxonomie ist, sollte bei einem Jahresfilter die für diese Objekte gedachte Suche greifen. Wenn die keine Datensätze für diesen Post Type oder diese Taxonomie findet, kann es genau zu einer solchen Ausgabe kommen.

    Thread-Starter swissmandal

    (@swissmandal)

    Danke für den anstoss, ich habe das ganze gefunden und ist ein extrem blöder Fehler von mir. So wie es ausschaut wird die get year Methode von WordPress fix verwendet, die habe ich jetzt angepasst und jetzt funktioniert alles…

    Moderator threadi

    (@threadi)

    Genau deswegen war ich so verwundert, weil ich weiß, dass WordPress das bei Post Types und Taxonomien verwendet. Aber schön, dass du es lösen konntest und danke fürs gelöst-markieren.

Ansicht von 7 Antworten – 1 bis 7 (von insgesamt 7)