비밀글 설정하면, 글작성자와 관리자는 볼수 있는데
회원가입이나 로그인없이 특정 비밀번호를 써서 그 글을 볼 수 있게 할 수 없을까요?
즉 글쓴이가 정한 비밀번호 말고, 다른 비밀번호를 등록하면 그 글을 볼수 있도록 하고싶습니다.
어떻게 보면 비밀번호를 두개로 할수 있을까요? 하나는 작성자가 한거고, 하나는 고정으로..
관리자가 설정할수있어서 이 글을 다른사람에게 보여주고싶을때 비밀번호를 알려줘서 확인하게 하고싶습니다.
안녕하세요.
파일을 수정하면 가능하겠습니다.
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 파일에서 수정된 내용은 다음 업데이트에 정식으로 추가할 테니 새로운 버전이 나오면 업데이트해주세요.
고맙습니다.
우와~감사합니다!! 너무 좋네요~!