안녕하세요?
몇년전부터 크로스 캘린더를 구매하여 사용중이며, 얼마전에는 KBoard 일반게시판을 하나 더 만들었습니다.
이 두 게시판은 내부업무 전용으로 사용할 것이므로 글 입력시 비밀번호 입력과정을 생략하고자 합니다.
크로스 캘린더의 경우에는 귀사의 도움을 받아 이미 게시글 삭제기능을 없앴기 때문에 기존글들이 누군가에 의해 임의적으로 삭제될 위험은 없습니다.
그래서 이왕이면 새로운 글 등록때마다 해당글에 대한 비밀번호 입력과정이 불필요하고 직원들도 매번 비번입력을 번거로워합니다.
게시글 등록시 비밀번호 입력란을 없애는 방법을 문의드립니다.
그럼 답변 부탁드려요~~
안녕하세요~^^
KBoard(케이보드) 게시판에서는 비회원은 비밀번호가 반드시 입력되어야 합니다.
그래야만 글수정, 글삭제가 가능하기 때문입니다.
만약 수정과 삭제가 필요 없다면 비밀번호를 hidden 필드로 숨길 수 있습니다.
입력 필드 설정을 지원하는 스킨을 사용 중이시라면
워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일 하단에
아래의 코드를 추가해보세요.
add_filter('kboard_get_template_field_html', 'kboard_ask_one_get_template_field_html', 10, 4);
function kboard_ask_one_get_template_field_html($html, $field, $content, $board){
if($field['meta_key'] == 'author' && $board->id == '1'){ // 실제 게시판 id로 적용해주세요.
$fields = $board->fields();
$field_name = (isset($field['field_name']) && $field['field_name']) ? $field['field_name'] : $field['field_label'];;
$placeholder = (isset($field['placeholder']) && $field['placeholder']) ? $field['placeholder'] : '';
$default_value = (isset($field['default_value']) && $field['default_value']) ? $field['default_value'] : '';
$boardBuilder = new KBoardBuilder($board->id);
ob_start();
?>
<?php if($field['permission'] == 'always_visible' || (!$field['permission'] && $board->viewUsernameField())):?>
<div class="kboard-attr-row <?php echo esc_attr($field['class'])?> required">
<label class="attr-name" for="kboard-input-member-display"><span class="field-name"><?php echo esc_html($field_name)?></span> <span class="attr-required-text">*</span></label>
<div class="attr-value"><input type="text" id="kboard-input-member-display" name="member_display" class="required" value="<?php echo $content->member_display?esc_attr($content->member_display):esc_attr($default_value)?>"<?php if($placeholder):?> placeholder="<?php echo esc_attr($placeholder)?>"<?php endif?>></div>
</div>
<?php elseif($field['permission'] == 'always_hide'):?>
<input type="hidden" id="kboard-input-member-display" name="member_display" value="<?php echo $content->member_display?esc_attr($content->member_display):esc_attr($default_value)?>">
<?php endif?>
<?php if($board->viewUsernameField()):?>
<input type="hidden" id="kboard-input-password" name="password" value="<?php echo esc_attr($content->password ? $content->password : uniqid())?>">
<?php endif?>
<?php
$html = ob_get_clean();
}
return $html;
}
위의 코드에서 $board->id == '1' 부분은 실제 게시판 id로 적용해주세요.
입력 필드 설정을 지원하지 않는 스킨을 사용 중이시라면
아래의 링크를 참고해보시겠어요?
https://www.cosmosfarm.com/threads/document/17806
고맙습니다.
신속한 답변 감사합니다~
저에게 답변주신 내용과 커뮤니티 자동 추천글에 뜨는 비밀번호 관련 문의글을 보면
비밀번호 입력란을 hidden 필드로 숨기라고 하셨는데
다른 분의 문의내용을 보면 hidden필드로 숨기면 글 작성시 비밀번호 입력란은 안보이게 되지만
글이 등록되려면 결국 비밀번호 입력을 요구하거나 램덤문자가 자동할당되는 식으로 되는 것 같습니다.
비밀번호 입력란을 안보이게 하는 것을 물론이고 비회원일지라도 비번 입력과정없이 글 등록가능한 방법은 없는건가요?
알려주신대로 소스 작업해보려다가 괜한 일이 될 것 같아서 한번 더 질문드립니다.
감사합니다~~
비회원은 권한 문제 때문에
Kboard 설계 구조상 비밀번호를 반드시 입력받고 있습니다.
그럼에도 비밀번호를 반드시 비워두셔야 하신다면
KBoard 플러그인의 kboard_insert_data 필터를 활용하실 수 있습니다.
안내해드린 코드와 함께
아래 코드를 테마 functions.php에 입력해보시겠어요?
add_filter('kboard_insert_data', 'empty_password_220120', 10, 2);
function empty_password_220120($data, $board_id){
$data['password'] = '';
return $data;
}
고맙습니다.