작성자 닉네임으로 나오게 하기

작성자 닉네임으로 나오게 하기

QA

작성자 닉네임으로 나오게 하기

답변 3

본문

 
            <?php if($is_show_field['writer']){ // 게시판 설정 중 작성자 체크가 되어 있으면 ?>
            <td class="td_name sv_use wr_writer"><?php echo $list[$i]['name'] ?></td>

 

wp-members 플러그인 사용중입니다.

아이디가 아닌 닉네임으로 나오게 하고 싶은데 어떻게 바꿔줘야 하나요?

wp-members 추가필드 닉네임값 불러오고 싶은데 꼭 좀 답변부탁드려요! ㅠㅠ

 

7d2fadf4d3c8d82d7a5d304bdf78d960_1464533969_3394.jpg
 

이 질문에 댓글 쓰기 :

답변 3

/lib/common.lib.php

 

안에 아래와같은 소스가있어요  참고하세요

 

// 회원 정보를 얻는다.
function get_member($mb_id, $fields='*')
{
    global $g5;

    return sql_fetch(" select $fields from {$g5['member_table']} where mb_id = TRIM('$mb_id') ");

버전이 달라서 저는 이렇게 보이나보네요!
어떻게 수정해줘야 할까요 ㅠㅠ


// 회원 정보를 얻는다.
function g5_get_member($mb_id, $slug='')
{
    global $wpdb, $gnupress;

    $mb_data = array(  // member 배열변수 초기화
        'user_level' => -1, //회원레벨 ( 비회원 일 경우 -1 )
        'mb_point' => 0,    //회원포인트 
        'mb_certify'=>'' ,   //본인인증
        'mb_adult'=>'',    //성인인증
        'user_id'=>0
    );

    if( ! $mb_id ){
        return $mb_data;
    }

    $member_array = wp_cache_get( 'g5_get_member_'.$mb_id );

    if( false === $member_array ){
        if( ! $slug && preg_match('/^\d+$/',$mb_id) ) {
            $user = get_userdata( $mb_id );
        } else {
            if( ! $slug ) $slug = 'login';
            $user = get_user_by( $slug, $mb_id );
        }

        if( ! isset($user->data) ){
            return $mb_data;
        }
        
        /*
        $member_array['user_id'] = $member_array['mb_id'] = ( isset($user->ID) && $user->ID > 0 ) ? $user->ID : '';
        $member_array['user_email'] = $member_array['mb_email'] = ( isset($user->user_email) ) ? $user->user_email : '';
        $member_array['user_display_name'] = $member_array['mb_nick'] = ( isset($user->display_name) ) ? $user->display_name : '';
        $member_array['user_url'] = $member_array['mb_homepage'] = ( isset($user->user_url) ) ? $user->user_url : '';
        $member_array['user_pass'] = $member_array['mb_password'] = ( isset($user->user_pass) ) ? $user->user_pass : '';
        */

        if( isset($user->data) && !empty($user->data) ){
            $member_array = wp_parse_args((array) $user->data , $mb_data);
        }
        $member_array['user_id'] = ( isset($user->ID) && $user->ID > 0 ) ? $user->ID : '';
        $member_array['user_display_name'] = ( isset($user->display_name) ) ? $user->display_name : '';

        if( $member_array['user_id'] ){
            $member_meta = get_user_meta( $member_array['user_id'] );

            if( !function_exists('g5_member_meta_extends') ){
                function g5_member_meta_extends($a){
                    return $a[0];
                }
            }
            // Filter out empty meta data
            $member_meta = array_filter( array_map('g5_member_meta_extends', $member_meta) );
            
            $check_meta_arr = array('first_name', 'last_name', 'mb_today_login', 'mb_login_ip');

            foreach( $check_meta_arr as $key=>$v ){
                $member_meta[$v] = isset($member_meta[$v]) ? $member_meta[$v] : '';
            }

            $member_meta['user_name'] = apply_filters('g5_get_member_name', $member_meta['first_name'].$member_meta['last_name'], $member_meta );

            $key_array = array('mb_id', 'mb_email', 'mb_nick', 'mb_homepage', 'mb_password');
            // $key_array에 포함된 값이 있다면 뺀다.
            $member_meta = array_diff( (array) $member_meta, $key_array);
            if( isset($member_meta[$wpdb->prefix.'user_level']) ){
                $member_meta['user_level'] = $member_meta[$wpdb->prefix.'user_level'];
            } else {
                $member_meta['user_level'] = 0;
            }
            $member_array = apply_filters( 'g5_get_member', wp_parse_args($member_meta, $member_array) );
        }

        wp_cache_set( 'g5_get_member_'.$mb_id , $member_array );
    }
    

소스를 참고하라는 겁니다

예를 들면

 

 DB 즉

  회원 관리 table 에 닉네임값 과 아이디 값이 이 있습니다.

  그리고 게시판 table 아이디값만 있고 닉네임값은 없습니다

 

이때에 게시판나에 닉네임을 불러오고싶은게 질문인데,,

// 회원 정보를 얻는다.
function get_member($mb_id, $fields='*')
{
    global $g5;

    return sql_fetch(" select $fields from {$g5['member_table']} where mb_id = TRIM('$mb_id') ");

 

를 참고하시라고 드린이유는 말그대루 참고 버전  이틀려서 안되는게아니고요

에를 들면

 

// 회원 닉네임을  얻는다.
function get_member_abc($mb_id, $fields='*')
{
    global $g5;

    return sql_fetch(" select $fields from {$g5['member_table']} where mb_id = TRIM('$mb_id') ");
}

이런식으로 하나 만들고 게시판에서 닉네임을 불러올때는

 

$name_chl=sql_fetch(테이블명,게시판번호);

   저가쓰고잇는 곳에서는   sql_fetch($table_boar,$wr_id);

 

그리고 닉네임이 보여질공간에 저는 회원 table 필드에 닛네임이 저장되는 곳의 필드네임이 mb_nick이므로

echo $name_chl[mb_nick]; 

이러게 불러오죠

 

 

질문한 내용의 소스에 보면

 


$member_array = apply_filters( 'g5_get_member', wp_parse_args($member_meta, $member_array) ); 

 

가 있습니다.

 

워드프레스 add_filter 함수를 이용해서 위의 값을 바꿀수 있습니다.

 

예 )

 


add_filter('g5_get_member', 'custom_g5_get_member');
 
function custom_g5_get_member($member_array){
 
$member_array['user_display_name'] = '바꾸고싶은값'; 
 
return $member_array;
}

 

위의 코드에서 바꾸고 싶은값에 wp-members 에 지정했던 닉네임 값으로 바꾸면 됩니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 167
© SIRSOFT
현재 페이지 제일 처음으로