KBoard 탈퇴한 회원으로 인해 발생하는 에

개발자님께,

 

이전에 user id 앞에 level 아이콘을 붙이려고 아래와 같은 코드를 작성하였습니다. 그런데 

탈퇴한 회원 아이디 왼편에 에러가 발생합니다. 혹시 어떻게 하면 에러를 수정할 수 있을까요?

추가로 혹시나 이런 에러를 html로 바로 출력되는게 아니라 다른 곳에 저장되게 할 수 있나요?

 

//아이콘 삽입 코드


// icon 추가

add_filter('kboard_user_display', 'my_kboard_user_display', 10, 5);

function my_kboard_user_display($user_display, $user_id, $user_name, $plugin, $builder){

    if(in_array($builder->board->id, array('1', '2', '5', '10', '18'))){

        $user = get_userdata($user_id);

        $user_roles = $user->roles;

        

        if(in_array('lv1', $user_roles, true)){

            $user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_1.svg" alt="">' . $user_display;

        }

        else if(in_array('lv2', $user_roles, true)){

            $user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_2.svg" alt="">' . $user_display;

        }

        else if(in_array('lv3', $user_roles, true)){

            $user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_3.svg" alt="">' . $user_display;

        }

        else if(in_array('lv4', $user_roles, true)){

            $user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_4.svg" alt="">' . $user_display;

        }

        else if(in_array('lv5', $user_roles, true)){

            $user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_5.svg" alt="">' . $user_display;

        }

        else if(in_array('lv6', $user_roles, true)){

            $user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_6.svg" alt="">' . $user_display;

        }

        else if(in_array('lv7', $user_roles, true)){

            $user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_7.svg" alt="">' . $user_display;

        }

        else if(in_array('lv8', $user_roles, true)){

            $user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_8.svg" alt="">' . $user_display;

        }

        else if(in_array('lv9', $user_roles, true)){

            $user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_9.svg" alt="">' . $user_display;

        }

        else if(in_array('headhunter', $user_roles, true)){

            $user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_h.svg" alt="">' . $user_display;

        }

        else if(in_array('sponsor', $user_roles, true)){

            $user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_s.svg" alt="">' . $user_display;

        }

        else if(in_array('cro', $user_roles, true)){

            $user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_c.svg" alt="">' . $user_display;

        }

        else if(in_array('administrator', $user_roles, true)){

            $user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_admin.svg" alt="">' . $user_display;

        }

        else if(in_array('vendor', $user_roles, true)){

        $user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_v.svg" alt="">' . $user_display;

        }

        else if(in_array('editor', $user_roles, true)){

            $user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_m.svg" alt="">' . $user_display;

            }

                else{

            $user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_0.svg" alt="">' . $user_display;

        }

    }

    

    return $user_display;

}

 

//오류 내용

Notice: Trying to get property of non-object in /andante0919/www/wp-content/themes/porto-child/functions.php on line 127 Warning: in_array() expects parameter 2 to be array, null given in /andante0919/www/wp-content/themes/porto-child/functions.php on line 129 Warning: in_array() expects parameter 2 to be array, null given in /andante0919/www/wp-content/themes/porto-child/functions.php on line 132 Warning: in_array() expects parameter 2 to be array, null given in /andante0919/www/wp-content/themes/porto-child/functions.php on line 135 Warning: in_array() expects parameter 2 to be array, null given in /andante0919/www/wp-content/themes/porto-child/functions.php on line 138 Warning: in_array() expects parameter 2 to be array, null given in /andante0919/www/wp-content/themes/porto-child/functions.php on line 141 Warning: in_array() expects parameter 2 to be array, null given in /andante0919/www/wp-content/themes/porto-child/functions.php on line 144 Warning: in_array() expects parameter 2 to be array, null given in /andante0919/www/wp-content/themes/porto-child/functions.php on line 147 Warning: in_array() expects parameter 2 to be array, null given in /andante0919/www/wp-content/themes/porto-child/functions.php on line 150 Warning: in_array() expects parameter 2 to be array, null given in /andante0919/www/wp-content/themes/porto-child/functions.php on line 153 Warning: in_array() expects parameter 2 to be array, null given in /andante0919/www/wp-content/themes/porto-child/functions.php on line 156 Warning: in_array() expects parameter 2 to be array, null given in /andante0919/www/wp-content/themes/porto-child/functions.php on line 159 Warning: in_array() expects parameter 2 to be array, null given in /andante0919/www/wp-content/themes/porto-child/functions.php on line 162 Warning: in_array() expects parameter 2 to be array, null given in /andante0919/www/wp-content/themes/porto-child/functions.php on line 165 Warning: in_array() expects parameter 2 to be array, null given in /andante0919/www/wp-content/themes/porto-child/functions.php on line 168 Warning: in_array() expects parameter 2 to be array, null given in /andante0919/www/wp-content/themes/porto-child/functions.php on line 171

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 안녕하세요~^^

    1. 탈퇴한 회원은 DB에서도 삭제되기 때문에

    get_userdata 함수로 사용자 정보를 가져왔을 때 데이터가 있는지

    체크를 해야 할 듯합니다.

     

    기존 코드 대신 아래의 코드로 교체해서 확인해보시겠어요?

    add_filter('kboard_user_display', 'my_kboard_user_display', 10, 5);
    function my_kboard_user_display($user_display, $user_id, $user_name, $plugin, $builder){
    	if(in_array($builder->board->id, array('1', '2', '5', '10', '18'))){
    		$user = get_userdata($user_id);
    		if($user){
    			$user_roles = $user->roles;
    		
    			if(in_array('lv1', $user_roles, true)){
    				$user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_1.svg" alt="">' . $user_display;
    			}
    			else if(in_array('lv2', $user_roles, true)){
    				$user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_2.svg" alt="">' . $user_display;
    			}
    			else if(in_array('lv3', $user_roles, true)){
    				$user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_3.svg" alt="">' . $user_display;
    			}
    			else if(in_array('lv4', $user_roles, true)){
    				$user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_4.svg" alt="">' . $user_display;
    			}
    			else if(in_array('lv5', $user_roles, true)){
    				
    				$user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_5.svg" alt="">' . $user_display;
    			}
    			else if(in_array('lv6', $user_roles, true)){
    				$user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_6.svg" alt="">' . $user_display;
    			}
    			else if(in_array('lv7', $user_roles, true)){
    				$user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_7.svg" alt="">' . $user_display;
    			}
    			else if(in_array('lv8', $user_roles, true)){
    				$user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_8.svg" alt="">' . $user_display;
    			}
    			else if(in_array('lv9', $user_roles, true)){
    				$user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_9.svg" alt="">' . $user_display;
    			}
    			else if(in_array('headhunter', $user_roles, true)){
    				$user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_h.svg" alt="">' . $user_display;
    			}
    			else if(in_array('sponsor', $user_roles, true)){
    				$user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_s.svg" alt="">' . $user_display;
    			}
    			else if(in_array('cro', $user_roles, true)){
    				$user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_c.svg" alt="">' . $user_display;
    			}
    			else if(in_array('administrator', $user_roles, true)){
    				$user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_admin.svg" alt="">' . $user_display;
    			}
    			else if(in_array('vendor', $user_roles, true)){
    				$user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_v.svg" alt="">' . $user_display;
    			}
    			else if(in_array('editor', $user_roles, true)){
    				$user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_m.svg" alt="">' . $user_display;
    			}
    			else{
    				$user_display = '<img class="level_icon" src="http://clinicaltrialtools.com/designer_icon/ico_0.svg" alt="">' . $user_display;
    			}
    		}
    	}
    	
    	return $user_display;
    }

     

    2. wp-config.php 파일에 아래의 코드를 추가하시면

    define('WP_DEBUG_LOG', true);

    /wp-content/debug.log 파일에 에러 메시지를 기록하게 됩니다.

    만약, debug.log 파일이 없다면 새로 추가해보세요.


    아래의 코드를 추가하면 페이지 화면에는 표시되지 않고 debug.log 파일에만 기록하실 수 있습니다.

    define('WP_DEBUG_DISPLAY', false);



    Error Log Monitor 플러그인을 사용하시면 기록된 에러를 워드프레스 관리자 페이지에서 확인하실 수 있습니다.

     

    아래 링크에서도 관련 내용을 확인해보실 수 있습니다.

    워드프레스 에러 확인하기 - 디버그 모드 활성화 방법

    고맙습니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요