비밀글을 확인할때 무적 비밀번호를 만들수 없을까요?

비밀글 설정하면, 글작성자와 관리자는 볼수 있는데

회원가입이나 로그인없이 특정 비밀번호를 써서 그 글을 볼 수 있게 할 수 없을까요?

즉 글쓴이가 정한 비밀번호 말고, 다른 비밀번호를 등록하면 그 글을 볼수 있도록 하고싶습니다.

 

어떻게 보면 비밀번호를 두개로 할수 있을까요? 하나는 작성자가 한거고, 하나는 고정으로..

관리자가 설정할수있어서 이 글을 다른사람에게 보여주고싶을때 비밀번호를 알려줘서 확인하게 하고싶습니다.

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

    파일을 수정하면 가능하겠습니다.

    FTP로 접속해서 파일을 수정해주세요.

    먼저 /wp-content/plugins/kboard/class/KBoard.class.php 파일을 수정해주세요.

     

    1. 아래 코드를 찾아주세요.

    public function isConfirm($password, $content_uid, $reauth=false){
    	if(!$password || !$content_uid) return false;
    	
    	$submitted_password = isset($_POST['password'])?sanitize_text_field($_POST['password']):'';
    	
    	if($reauth){
    		if($submitted_password == $password){
    			$_SESSION['kboard_confirm'][$content_uid] = $password;
    			return true;
    		}
    	}
    	else if(isset($_SESSION['kboard_confirm']) && isset($_SESSION['kboard_confirm'][$content_uid]) && $_SESSION['kboard_confirm'][$content_uid] == $password){
    		return true;
    	}
    	else if($submitted_password == $password){
    		$_SESSION['kboard_confirm'][$content_uid] = $password;
    		return true;
    	}
    	return false;
    }

     

    2. 찾은 코드를 아래 코드로 교체해주세요.

    public function isConfirm($content_password, $content_uid, $reauth=false){
    	$confirm = false;
    	
    	if($content_password && $content_uid){
    		$input_password = isset($_POST['password'])?sanitize_text_field($_POST['password']):'';
    		
    		if($reauth){
    			if($input_password == $content_password){
    				$_SESSION['kboard_confirm'][$content_uid] = $content_password;
    				$confirm = true;
    			}
    		}
    		else if(isset($_SESSION['kboard_confirm']) && isset($_SESSION['kboard_confirm'][$content_uid]) && $_SESSION['kboard_confirm'][$content_uid] == $content_password){
    			$confirm = true;
    		}
    		else if($input_password == $content_password){
    			$_SESSION['kboard_confirm'][$content_uid] = $content_password;
    			$confirm = true;
    		}
    	}
    	
    	return apply_filters('kboard_password_confirm', $confirm, $input_password, $content_password, $content_uid, $reauth, $this);
    }

     

    3. 테마의 functions.php 파일에 아래 코드를 추가해주세요.

    add_filter('kboard_password_confirm', 'my_kboard_password_confirm', 10, 6);
    function my_kboard_password_confirm($confirm, $input_password, $content_password, $content_uid, $reauth, $board){
    	
    	if($input_password == 'superpass'){
    		$confirm = true;
    	}
    	
    	return $confirm;
    }

     

    마지막으로 위 코드에서 superpass 부분을 원하시는 비밀번호로 바꿔주세요.

    그럼 모든 게시글에서 해당 비밀번호로 게시글 읽기가 가능할 겁니다.

    KBoard.class.php 파일에서 수정된 내용은 다음 업데이트에 정식으로 추가할 테니 새로운 버전이 나오면 업데이트해주세요.

    고맙습니다.

  • 우와~감사합니다!! 너무 좋네요~!

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