Eigenen Bereichs-Filter erstellen - WIE?

  • Hallo,
    ich möchte gern einen Filter erstellen der mir das Suchergebnis nach dem Bereich zwischen zwei Werten aus eigenen Eingabefeldern ausgibt.

    Beispiel:
    ----------
    Im Beitrag werden 2 Felder gesetzt, WertMin und WertMax. Ich möchte in der Suche dann alle Einträge ausgeben lassen die zwischen WertMin und WertMax liegen. Ist ein Wert von beiden nicht gesetzt, gilt bei WertMin alles bis 0 und bei WertMax alles bis Unendlich. Sind beide Werte leer, gibt der Filter alle vorhandenen Einträge aus.

    Ich hab es mit "between" versucht aber ich mache irgendwas falsch und trete auf der Stelle. Ich bin mit der WP-Programmierung noch ganz am Anfang und will mich da hinein arbeiten. Kann mir von Euch bitte jemand auf die Sprünge helfen? :wink:

    Herzliche Grüße, Razzio

    • 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

  • Da ich meinen Beitrag leider nicht (mehr?) bearbeiten darf (Warum eigentlich nicht?), möchte ich hier noch einige Infos dazu geben:
    - Ich benutze den JobManager und Listify als Erweiterung bzw. Theme.
    - Die beiden Felder [COLOR=#333333]WertMin und WertMax werden vom Ersteller des Beitrages eingegeben und angelegt.[/COLOR]
    [COLOR=#333333]- Der suchende Benutzer der Seite soll dann die Einträge filtern können indem er einen Zahlenwert eingibt und alle Suchergebnisse zwischen WertMin und WertMax angezeigt werden.[/COLOR]

    [COLOR=#333333]Vielleicht ist das etwas verständlicher gefragt als im Original-Beitrag oben. :)

    Herzliche Grüße![/COLOR]

    Einmal editiert, zuletzt von Razzio (27. Juni 2017 um 10:53)

  • Hallo X-GER,
    das möchte ich nicht da es 1. ein Testsystem ist und 2. ein Projekt was noch nicht in die Öffentlichkeit soll. :)

    Was möchtest Du denn wissen? Welche Informationen kann ich Dir geben?

    [COLOR=#333333]Herzliche Grüße![/COLOR]

  • Die Felder haben wir in der functions.php einfach angelegt.

    PHP
    add_filter( 'submit_job_form_fields', 'frontend_add_maxpeople_field' );function frontend_add_maxpeople_field( $fields ) {  $fields['job']['job_maxpeople'] = array(    'label'       => __( 'Bis max. Personen', 'job_manager' ),    'type'        => 'text',    'required'    => false,    'placeholder' => '250',    'maxlength'  => '4',    'priority'    => 10,    'class'       => 'col-md-6 col-xs-12'  );  return $fields;}add_filter( 'submit_job_form_fields', 'frontend_add_minpeople_field' );function frontend_add_minpeople_field( $fields ) {  $fields['job']['job_minpeople'] = array(    'label'       => __( 'Mindestpersonenanzahl', 'job_manager' ),    'type'        => 'text',    'required'    => false,    'placeholder' => '30',    'maxlength'  => '3',    'priority'    => 11,    'class'       => 'col-md-6 col-xs-12'  );  return $fields;}

    Nun möchte ich im Filterfeld ebenfalls ein Feld anbieten, in dem der Nutzer dann eine Zahl eingibt und er bekommt nur die Einträge angezeigt bei denen die Mindestpersonenanzahl (job_minpeople)mindestens dem eingebenen Wert im Filter entspricht oder die maximale Personenzahl (_job_maxpeople) den eingegebenen Wert nicht überschreitet.

    Die Idee mit "between" als Vergleichsoperator habe ich verworfen. :)

    Herzliche Grüße, Razzio

  • Ok, das heißt, es gibt eigentlich nur das Formular, aber noch gar keine "Logik" dahinter?

    Dann ist WP_QUERY auf jeden Fall der richtige Ansatz, würde ich sagen (link siehe mein vorheriger Beitrag).
    Damit kannst du ja beides zur Bedingung machen und mit AND verknüpfen...

  • Hallo Daniel, vielen Dank für diese Tipps. Ich werde mir das in den nächsten Tagen mal ansehen und dann berichten. :)

    Hezliche Grüße!

Jetzt mitmachen!

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