wake-up-neo.com

Erstellen einer Front-End-basierten Benutzersuche

Ich arbeite an einer Mitgliederseite, für die eine Front-End-Benutzersuche erforderlich ist. Ich habe nach einer Antwort gesucht wie ein Verrückter, und ich könnte wirklich Hilfe gebrauchen! Es gibt zwar mehrere Plugins mit dieser Funktion (WordPress-Mitgliederliste, AMR-Benutzer usw.); Keiner von ihnen tut genau das, was ich brauche, und wenn man sich die Quellcodes ansieht, ist das ein großes Durcheinander, und es scheint ohnehin, als wäre es am Ende eine vergebliche Anstrengung. Mir ist klar, dass ich hier wahrscheinlich etwas Eigenes schreiben muss. Die Logik, die ich brauche, ist eigentlich sehr einfach und einfach in Bezug auf die Funktionsweise.

Logik der Benutzersuche lautet:

1. Der Benutzer gibt die USER ID # eines anderen Benutzers in ein einfaches Suchfeld ein.

2. Nach dem Absenden der Suche wird der Benutzer direkt zum Mitgliederprofil weitergeleitet

Ja , Benutzer suchen nach anderen Benutzern anhand ihrer Benutzer-ID (stellen Sie sich das als Mitgliedsnummer vor). Dafür gibt es einen bestimmten Grund, der für die Site sinnvoll ist. Aber ich möchte das Thema nicht verlassen, weiß nur, dass diese Anforderung nicht geändert werden kann. Ich denke, dies sollte jedoch keine Rolle spielen, denn wenn Sie "user_nicename" aus der "wp_users" -Tabelle in der Datenbank abfragen können, sollten Sie auch das "ID" -Feld abfragen können.

Ich erwarte natürlich nicht, dass mir jemand den gesamten Code dafür zur Verfügung stellt, aber es wäre schön, wenn Sie mir eine allgemeine Anleitung (und möglicherweise Beispiele) geben könnten, wie ich dies tun kann. Es fällt mir aus irgendeinem Grund schwer, meinen Kopf darum zu wickeln.

Vielen Dank!

2
CSteel

Da Sie nicht genau angegeben haben, wonach Sie suchen, werde ich versuchen, sie alle kurz zu beschreiben.

Verwenden Sie die API - public WP_User_Query API-Funktionen

Grundsätzlich sollte get_user_by() für Sie ausreichen. Nehmen wir an, Sie lösen Ihr Formular aus und das Eingabefeld name war user_id. Sie rufen also einfach den Wert aus dem $_REQUEST (oder $_GET) ab und führen dann eine einfache Abfrage durch.

$user = get_user_by( 'user_id', $_REQUEST['user_id'] );

Erweiterte Aufgabe: Meta User Query

Wenn Sie komplexere Anforderungen ausführen möchten (für möglicherweise nur eine Teilanforderung, die mehr als einen Benutzer als mögliches Ergebnis abdeckt), müssen Sie get_users() aufrufen, den Standard-API-Wrapper für new WP_User_Query.

Eine Meta-Abfrage könnte folgendermaßen aussehen:

$args = array(
    'meta_key' => 'custom-usermeta',
    'meta_value' => $cat_id,
    'meta_compare' => '='
);
$users = get_users( $args );

Ajax-Suche

Wenn Sie AJAX Suchfunktionen benötigen, schauen Sie sich einfach die Antworten unter ajax an, um dies zu umgehen - kein Grund, dies hier zu wiederholen.

Ich habe eine Frage zu Autocomplete vor einiger Zeit gestellt und die wichtigsten Teile behandelt.

// jQuery autocomplete - already bundled with WP core
function wpse71343_scripts()
{
    wp_enqueue_script( 'jquery-ui-autocomplete' );
}
add_action( 'wp_enqueue_scripts', 'wpse71343_scripts' );
3
kaiser

Ich denke, die WordPress-Funktion, die Sie suchen, ist:

Natürlich müssen Sie die Seite mit den zurückgegebenen Ergebnissen erstellen.

0
Steve