안녕하세요?
회원관리 유저리스트에서
first_name, last_name 두가지 필드로 검색값이 출력됐으면 합니다.
<?php
$args = array(
'order' => 'DESC',
'orderby' => 'ID',
'number' => 20,
'paged' => $paged,
'search' => "*$keyword*",
'search_columns' => array('user_login', 'last_name', 'first_name')
);
$query = new WP_User_Query(apply_filters('cosmosfarm_members_users_list_query_args', $args));
$users = $query->get_results();
foreach($users as $user){
echo $skin->users_list_item($user);
}
if(!$query->get_total() && $paged == 1):
?>
<li class="not-found"><?php echo __('No users found.', 'cosmosfarm-members')?></li>
<?php endif?>
현재 users-list.php인데,
search_columns에 ARRAY에 저렇게 추가해도 정상작동하지않네요.
어떤게 잘못된건지 궁금합니다.
안녕하세요~^^
코스모스팜 회원관리 플러그인 회원리스트 페이지에서 검색 시
first_name, last_name 필드로 검색되게 하시려면
스킨 파일을 수정하지 마시고
cosmosfarm_members_users_list_query_args 필터를 활용해보시겠어요?
워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일 하단에
아래의 코드를 추가해보세요.
add_filter('cosmosfarm_members_users_list_query_args', 'my_cosmosfarm_members_users_list_query_args', 10, 1);
function my_cosmosfarm_members_users_list_query_args($args){
$keyword = isset($_REQUEST['keyword'])&&$_REQUEST['keyword'] ? sanitize_text_field($_REQUEST['keyword']) : '';
$paged = isset($_REQUEST['paged']) ? intval($_REQUEST['paged']): 1;
$args = array(
'order' => 'DESC',
'orderby' => 'ID',
'number' => 20,
'paged' => $paged,
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'first_name',
'value' => $keyword,
'compare' => 'LIKE'
),
array(
'key' => 'last_name',
'value' => $keyword,
'compare' => 'LIKE'
),
)
);
return $args;
}
WP_User_Query 클래스에 대한 자세한 내용은
아래의 링크를 참고해보세요.
https://codex.wordpress.org/Class_Reference/WP_User_Query
고맙습니다.