web-dev-qa-db-ja.com

フロントエンドベースのユーザー検索の作成

私はフロントエンドユーザーの検索が必要な会員制サイトに取り組んでいます。私は狂った男のような答えを探していました、そして私は本当に何らかの助けを使うことができました!この機能を持つプラグインがいくつかあります(WordPress Members List、AMR Usersなど)。それらのどれも私が必要としていることを正確には実行しません、そしてそれらのソースコードを見ることによって、分離するのは大変なことになるでしょう、そしてそれはとにかく結局無駄な努力かもしれません。私はここで自分自身で何か特別なことを書く必要があるだろうということを十分に理解しています。私が必要とする論理は、実際にはどのように機能する必要があるかという点では非常に単純明快で単純です。

ユーザー検索ロジックは次のようになります。

1. Userは、別のユーザーのUSER ID#を単純な単一の検索フィールドに入力します。

2. 検索を送信すると、ユーザーは直接メンバーのプロフィールに移動します

はい、ユーザーは自分のユーザーIDで他のユーザーを検索します(メンバーシップ番号と考えてください)。これには特別な理由があり、それはサイトにとって意味があります。しかし、この要件を変更することはできないということを知っているだけで、私はこの問題を解決したくはありません。データベースの「wp_users」テーブルから「user_nicename」を照会できるのであれば、「ID」フィールドも照会できるはずなので、これは問題にならないと思います。 ?

誰もがこのためのコード全体を私に提供することは明らかに期待していませんが、私がこれについてどのように取り組むことができるかについて一般的な指示(そして可能であれば例)を教えてもらえればいいでしょう。なんらかの理由で頭を包み込むのに苦労しています。

ありがとうございます。

2
CSteel

あなたがあなたが何をしているかについての詳細を提供しなかったので、私はそれらをすべて非常に簡単につかむようにするつもりです。

APIを使用する - パブリックWP_User_Query API関数

基本的には get_user_by() で十分でしょう。あなたが自分のフォームを起動し、入力フィールドnameuser_idであったとしましょう。そのため、$_REQUEST(または$_GET)から値を取得してから単純なクエリを実行するだけです。

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

高度なタスク:メタユーザークエリー

もっと複雑なリクエストをするつもりなら(おそらく、結果として複数のユーザをカバーするリクエストの一部だけのために)、 get_users() を呼び出してください。これはnew WP_User_QueryのデフォルトのAPIラッパーです。

メタクエリは次のようになります。

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

AJAX検索

AJAX検索機能が必要な場合は、 ajax の下にある回答を見てください。

私はオートコンプリートについて質問しました しばらく前に そして最も重要な部分をカバーしています。

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

私はあなたが探しているWordPressの機能は次のとおりだと思います。

もちろん、結果が返されたページを生成する必要があります。

0
Steve