최신글 작성자 * 별표표시 하는 방법 문의 드립니다.

안녕하세요. 

게시판에서 작성자 이름에 * 표 표시 하는 방법은 [https://www.cosmosfarm.com/threads/document/14441]글을 보고 해결하였는데,

해당 기능에서 게시판 id 를 하나만 추가하여서 인지, 메인에서 노출되는 '최신글' 에서는 작성자 이름이 전체 노출되고 있습니다.

 

latest.php 에도 list.php 와 동일하게 작성자에 

<?php echo apply_filters('kboard_user_display', $content->getUserName(), $content->getUserID(), $content->getUserName(), 'kboard', $boardBuilder)?> 라고 기재하였는데

list에서는 되고 최신글에서는 안되는 이유를 알 수 있을까요?>

 

add_filter('kboard_user_display', 'my_kboard_user_display', 10, 5);
	function my_kboard_user_display($user_display, $user_id, $user_name, $plugins, $boardBuilder){
		$board = $boardBuilder->board;
		$userdata = get_userdata($user_id);
		
		if($board->id == '2' && !$board->isAdmin() && !in_array('administrator', $userdata->roles)){ // 실제 게시판 id로 적용해주세요.
			$strlen = mb_strlen($user_name, 'utf-8');
			
			if($strlen > 3){
				$showlen = 2;
			}
			else{
				$showlen = 1;
			}
			
			$user_display = mb_substr($user_name, 0, $showlen, 'utf-8') . str_repeat('*', $strlen-$showlen);
		}
		
		return $user_display;
	}

function.php 에는 위와같이 추가해둔 상태입니다.

 

카카오톡 오픈채팅방에 여쭤보고 싶었으나, 비번이 걸려있고 비번이 뭔지 모르겠어서 ㅠ 여기다 문의드려요.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
  • 안녕하세요~^^

    워드프레스 사용자 단톡방은 광고성 글이 많이 올라와서 임시로 비밀번호를 걸어뒀습니다.

    참여코드는 wp2021 입니다.

     

    최신글 숏코드를 사용 중이시라면

    올려주신 코드를 활용해서 게시판 ID 체크를 하실 수 있습니다.

    최신글 모아보기를 사용 중이시라면 게시판 ID가 배열로 되어 있기 때문에

    별도로 체크를 해주셔야 합니다.

     

    최신글 숏코드와 최신글 모아보기 중 어떤 기능을 사용 중이신지 알려주시겠어요?

    고맙습니다.

  • 최신글 모아보기에도 적용되게 하시려면

    올려주신 코드 중

    아래의 코드를 찾아서

    $board->id == '2'

    아래의 코드로 교체해보시겠어요?

    ($board->id == '2' || is_array($boardBuilder->board_id))

    고맙습니다.

  • 혹시 작성한 사용자가 계정을 삭제한 상황일까요?

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

    add_filter('kboard_user_display', 'my_kboard_user_display', 10, 5);
    function my_kboard_user_display($user_display, $user_id, $user_name, $plugins, $boardBuilder){
    	$board = $boardBuilder->board;
    	$userdata = get_userdata($user_id);
    	
    	if(($board->id == '2' || is_array($boardBuilder->board_id)) && !$board->isAdmin() && (!$userdata || !in_array('administrator', $userdata->roles))){ // 실제 게시판 id로 적용해주세요.
    		$strlen = mb_strlen($user_name, 'utf-8');
    		
    		if($strlen > 3){
    			$showlen = 2;
    		}
    		else{
    			$showlen = 1;
    		}
    		
    		$user_display = mb_substr($user_name, 0, $showlen, 'utf-8') . str_repeat('*', $strlen-$showlen);
    	}
    	
    	return $user_display;
    }

    고맙습니다.

  • 답변 감사드립니다 :)

    최신글 모아보기를 생성하여 아래에 나온 숏코드를 이용하여 아래와 같은소스로 메인에 넣어둔 상태입니다.

    <?php echo do_shortcode('[kboard_latestview id="1"]')?>

    요 경우에는 게시판 id 를 배열로 어떻게 넣어야할까요?

  • add_filter('kboard_user_display', 'my_kboard_user_display', 10, 5);
    	function my_kboard_user_display($user_display, $user_id, $user_name, $plugins, $boardBuilder){
    		$board = $boardBuilder->board;
    		$userdata = get_userdata($user_id);
    		
    		if($board->id == '2' || is_array($boardBuilder->board_id) && !$board->isAdmin() && !in_array('administrator', $userdata->roles)){ // 실제 게시판 id로 적용해주세요.
    			$strlen = mb_strlen($user_name, 'utf-8');
    			
    			if($strlen > 3){
    				$showlen = 2;
    			}
    			else{
    				$showlen = 1;
    			}
    			
    			$user_display = mb_substr($user_name, 0, $showlen, 'utf-8') . str_repeat('*', $strlen-$showlen);
    		}
    		
    		return $user_display;
    	}

     

    이렇게 넣었더니 오류가 뜨네요 ㅠ


    Notice: Trying to get property 'roles' of non-object in /updrive8885/www/wp-content/themes/updrive/functions.php on line 14

    Warning: in_array() expects parameter 2 to be array, null given in /updrive8885/www/wp-content/themes/updrive/functions.php on line 14
    유** 님

     

    라고 떠요! **는 먹는것 같은데 위에 오류는 어떻게 없앨 수 있을까요?

  • 해결되었습니다!!! 정말 감사합니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기