web-dev-qa-db-fra.com

Création d'une recherche utilisateur frontale

Je travaille sur un site d'adhésion qui nécessite une recherche d'utilisateur front-end. Je cherchais une réponse comme un homme fou, et je pourrais vraiment avoir besoin d’aide! Bien que plusieurs plugins aient cette capacité (liste des membres WordPress, utilisateurs AMR, etc.); Aucun d'entre eux ne fait exactement ce dont j'ai besoin, et en regardant leurs codes source, ce serait un énorme gâchis à régler, et il semblerait que cela pourrait être un effort infructueux à la fin de toute façon. Je me rends pleinement compte que je devrai probablement écrire quelque chose de personnalisé ici La logique dont j'ai besoin est en fait très simple et précise en termes de fonctionnement.

La logique de recherche utilisateur ressemble à:

1. L'utilisateur entre un autre numéro d'utilisateur USER ID # dans un seul champ de recherche.

2. Lors de la recherche, l'utilisateur est directement dirigé vers le profil des membres.

Oui , les utilisateurs rechercheront d'autres utilisateurs à l'aide de leur ID utilisateur (considérez-le comme un numéro de membre). Il y a une raison spécifique à cela, qui a du sens pour le site. Mais je ne veux pas sortir du sujet, sachez simplement que cette exigence ne peut pas être changée. Je pense que cela ne devrait cependant pas avoir d'importance, car si vous pouvez interroger "user_nicename" dans la table "wp_users" de la base de données, vous devriez pouvoir interroger le champ "ID" comme bien?

Je ne m'attends évidemment pas à ce que tout le monde me fournisse le code complet à ce sujet, mais ce serait bien si vous pouviez me donner des instructions générales (et peut-être des exemples si possible) sur la manière de procéder. J'ai de la difficulté à comprendre cela pour une raison quelconque.

Merci!

2
CSteel

Comme vous n'avez pas donné les détails de ce que vous recherchez, je vais essayer de les saisir très brièvement.

Utiliser l'API - fonctions API WP_User_Query publiques

Fondamentalement get_user_by() devrait vous suffire. Supposons que vous tiriez de votre formulaire et que le champ de saisie name était user_id. Donc, vous récupériez simplement la valeur à partir du $_REQUEST (ou $_GET), puis faites une requête simple.

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

Tâche avancée: Requête méta-utilisateur

Si vous envisagez de faire des requêtes plus complexes (par exemple, une requête partiellement couvrant plusieurs utilisateurs), il est temps d'appeler get_users() , qui est le wrapper d'API par défaut pour new WP_User_Query.

Une méta requête pourrait ressembler à ceci:

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

Recherche AJAX

Si vous avez besoin de la fonctionnalité de recherche AJAX, jetez simplement un coup d'œil aux réponses classées sous ajax pour contourner le problème - aucune raison de le répéter. ici.

J'ai posé une question sur l'auto-complétion il y a quelque temps et couvre les parties les plus importantes.

// 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

Je pense que la fonction WordPress que vous recherchez est:

Bien sûr, vous devrez générer la page avec les résultats renvoyés.

0
Steve