1. Home
  2. Docs
  3. Admin 화면 커스텀
  4. 유저 검색 키워드 추가

유저 검색 키워드 추가

유저 검색 키워드 추가하기 (ex: 본인인증 이름, 본인인증 휴대폰, 이름)

// 사용자 검색 확장. 실명 이름 정보 포함
add_action('pre_user_query','oks_pre_user_search');
function oks_pre_user_search($user_search) {
    global $wpdb;
    if (!isset($_GET['s'])) return;

    //Enter Your Meta Fields To Query !!!!! 
    $search_array = array("namecheck_utf8_name", "first_name", "namecheck_mobile_no");

    $user_search->query_from .= " INNER JOIN {$wpdb->usermeta} ON {$wpdb->users}.ID={$wpdb->usermeta}.user_id AND (";
    for($i=0;$i<count($search_array);$i++) {
        if ($i > 0) $user_search->query_from .= " OR ";
            $user_search->query_from .= "{$wpdb->usermeta}.meta_key='" . $search_array[$i] . "'";
        }
    $user_search->query_from .= ")";        
    $custom_where = $wpdb->prepare("{$wpdb->usermeta}.meta_value LIKE '%s'", "%" . $_GET['s'] . "%");
    $user_search->query_where = str_replace('WHERE 1=1 AND (', "WHERE 1=1 AND ({$custom_where} OR ",$user_search->query_where);    
}

 

다른 코드 예

add_action( 'pre_user_query', function( $uqi ) {
    global $wpdb;
 
    $search = '';
    if ( isset( $uqi->query_vars['search'] ) )
        $search = trim( $uqi->query_vars['search'] );
 
    if ( $search ) {
        $search = trim($search, '*');
        $the_search = '%'.$search.'%';
 
        $search_meta = $wpdb->prepare("
        ID IN ( SELECT user_id FROM {$wpdb->usermeta}
        WHERE ( ( meta_key='first_name' OR meta_key='some_more' )
            AND {$wpdb->usermeta}.meta_value LIKE '%s' )
        )", $the_search);
 
        $uqi->query_where = str_replace(
            'WHERE 1=1 AND (',
            "WHERE 1=1 AND (" . $search_meta . " OR ",
            $uqi->query_where );
    }
});