1. 정확한 제품 또는 플러그인 이름
케이보드 게시판
2. 상세 내용
https://blog.cosmosfarm.com/archives/506/kboard-%EA%B2%8C%EC%8B%9C%ED%8C%90%EC%97%90-%EA%B0%9C%EC%9D%B8%EC%A0%95%EB%B3%B4-%EB%8F%99%EC%9D%98-%EC%B2%B4%ED%81%AC%EB%B0%95%EC%8A%A4-%EB%A7%8C%EB%93%A4%EA%B8%B0/
위 링크 내용을 참고해 코드를 function.php 에 넣었는데, 이후 게시판관리에서
권한설정, 입력필드,계층형카테고리와 같은 탭버튼이 눌리지 않는 문제가 생겼습니다.
이것을 해결할 수 있는 방법이 있을까요?
3. 확인 가능한 상세 페이지 주소
4. 수정한 코드 내역 (있다면)
아래는 function.php에 삽입한 코드 전문입니다.
add_filter('gettext', 'my_text_strings', 999, 3);
function my_text_strings($translated_text, $text, $domain){
if($domain == 'kboard'){
switch($translated_text){
case 'KBoard 미디어 추가': $translated_text = '이미지 업로드'; break;
}
}
return $translated_text;
}
//==================================k-board 게시글 목록의 공지사항을 원하는 문구로 변경
add_action('kboard_skin_header', 'kboard_skin_header_20211222', 10, 1);
function kboard_skin_header_20211222($builder){
$board = $builder->board;
if(kboard_builder_mod() == 'list' && $board->id == '1'){ // 실제 게시판 id로 적용.
add_filter('gettext', 'gettext_20211222', 10, 3);
}
}
function gettext_20211222($translated_text, $text, $domain){
if($domain == 'kboard'){
switch ($translated_text){
case '공지사항': $translated_text = '※'; break;
}
}
return $translated_text;
}
//=================================k-board‘글쓰기’시, 옵션의 공지사항을 원하는 글로 변경
add_filter('kboard_get_template_field_html', function($field_html, $field, $content, $board){
if($board->id == '1'){ // 실제 적용될 게시판 ID 값으로 변경해주세요.
if($field['field_type'] == 'option'){
ob_start();
?>
<div class="kboard-attr-row kboard-attr-option">
<label class="attr-name" for="option"><span class="field-name">옵션</span></label>
<div class="attr-value">
<label class="attr-value-option"><input type="checkbox" name="secret" value="true" onchange="kboard_toggle_password_field(this)"> 비밀글</label>
<label class="attr-value-option"><input type="checkbox" name="notice" value="true"> 중요공지</label>
</div>
</div>
<?php
return ob_get_clean();
}
}
return $field_html;
}, 10, 4);
//==========게시판에 개인정보 동의 체크박스 만들기
add_filter('kboard_skin_fields', 'my_kboard_skin_fields', 10, 2);
function my_kboard_skin_fields($fields, $board){
if($board->id == '2'){ // 실제 적용될 게시판 ID 값으로 변경해주세요.
if(!isset($fields['agree_checkbox'])){
$fields['agree_checkbox'] = array(
'field_type' => 'agree_checkbox',
'field_label' => '개인정보 제공 및 활용 동의',
'class' => 'kboard-attr-checkbox',
'hidden' => '',
'meta_key' => '',
'field_name' => '',
'permission' => '',
'roles' => '',
'default_value' => '',
'placeholder' => '',
'required' => '',
'show_document' => '',
'description' => '',
'close_button' => 'yes'
);
}
}
return $fields;
}
add_filter('kboard_get_template_field_html', 'my_kboard_get_template_field_html', 10, 4);
function my_kboard_get_template_field_html($field_html, $field, $content, $board){
if($field['field_type'] == 'agree_checkbox'){
ob_start();
?>
<div class="kboard-attr-row meta-key-<?php echo esc_attr($field['meta_key'])?> required">
<label class="attr-name" for="agree_checkbox" style="display:none">
<span class="field-name"><?php echo esc_html($field['field_name'] ? $field['field_name'] : $field['field_label'])?></span>
</label>
<div class="attr-value" style="margin:0;">
<div style="margin: 20px 0; padding: 10px; height: 100px; background-color: #f2f2f2; overflow-y: auto;">
<p>⊙ 개인정보의 수집 및 이용목적
- 서비스 이용에 따른 본인식별, 실명확인, 가입의사 확인, 연령제한 서비스 이용
- 고지사항 전달, 불만처리 의사소통 경로 확보, 물품배송 시 정확한 배송지 정보 확보
- 신규 서비스 등 최신정보 안내 및 개인맞춤서비스 제공을 위한 자료
- 기타 원활한 양질의 서비스 제공 등</p>
<p>⊙ 수집하는 개인정보의 항목
- 이름, 이메일, 주소, 연락처, 핸드폰번호, 그 외 선택항목</p>
<p>⊙ 개인정보의 보유 및 이용기간
- 원칙적으로 개인정보의 수집 또는 제공받은 목적 달성 시 지체 없이 파기합니다.
- 다만, 원활한 서비스의 상담을 위해 상담 완료 후 내용을 3개월간 보유할 수 있으며
전자상거래에서의 소비자보호에 관한 법률 등 타법률에 의해 보존할 필요가 있는 경우에는 일정기간 보존합니다.</p>
</div>
<div style="text-align:center;">
<input type="hidden" class="required" name="kboard_option_<?php echo esc_attr($field['meta_key'])?>" value="1">
<label><input type="checkbox" class="required" name="kboard_option_<?php echo esc_attr($field['meta_key'])?>" value="1"> 개인정보 제공 및 활용에 동의합니다.</label>
</div>
</div>
</div>
<?php
$field_html = ob_get_clean();
}
return $field_html;
}
안녕하세요.
올려주신 내용만으로는 원인을 파악하기 어렵습니다.
정확한 원인을 파악하기 위해 디버그 모드를 활성화해서
어떤 오류 메시지가 표시되는지 확인해보셔야 할 듯합니다.
디버그 모드 활성화 방법은 아래의 링크를 참고해보세요.
오류 메시지가 표시되지 않는다면 잠시 다른 테마로 바꿔서 확인해보시고
다른 플러그인을 비활성화하신 후에도 확인해보셔야 할 듯합니다.
고맙습니다.
https://imgur.com/a/Es7rCuR
탭 클릭시 주소의 맨 마지막 숫자만 바뀌며 페이지이동은 되지않습니다. 그리고 콘솔에 오류메시지가 뜹니다.
원문의 [//==========게시판에 개인정보 동의 체크박스 만들기] 아래 코드를 삭제 후 저장했을 땐 아무 문제없었습니다.