게시판들의 비밀글이 모두가 볼 수 있게 되었습니다.
호스팅 만료되서 다시 연장했더니 갑자기 비밀글들이...비밀설정이 풀려있어요....
오랜된 사이트여서 게시판 업데이트 진행하고 확인하는데 이전글들도 비밀글로 강제 설정할 수 있는 방법이 있을까요?
그리고 업데이트 진행 한뒤 document.php 의 페이지만 꺠져서 보이는데 ㅠㅠ 왜그럴까요
https://imgur.com/0367ZYY
댓글쪽도 업데이트 했는데 에러 문구가 뜨네요..ㅠㅠ
댓글이랑 document 쪽은 해결했어요!
강제 비밀글 설정은 아래 코드를 찾긴했는데 안먹네요 ㅠㅠㅠ 다른코드 있을까요?
스킨은 default/ id=1 을 사용하고있습니다. ㅠㅠ
add_filter('kboard_get_template_field_html', 'kboard_get_template_field_html_20210326', 10, 4);
function kboard_get_template_field_html_20210326($layout, $field, $content, $board){
if($board->id == '1'){ // 실제 게시판 id로 적용해주세요.
$fields = $board->fields();
$builder = new KBoardBuilder($board->id);
$meta_key = (isset($field['meta_key']) && $field['meta_key']) ? $field['meta_key'] : '';
$field_name = (isset($field['field_name']) && $field['field_name']) ? $field['field_name'] : $field['field_label'];;
$default_value = (isset($field['default_value']) && $field['default_value']) ? $field['default_value'] : '';
if(isset($field['meta_key']) && $field['meta_key'] == 'option'){
ob_start();
?>
<?php if($fields->isUseFields($field['notice_permission'], $field['notice'])):?>
<div class="kboard-attr-row <?php echo esc_attr($field['class'])?>">
<label class="attr-name" for="<?php echo esc_attr($meta_key)?>"><span class="field-name"><?php echo esc_html($field_name)?></span></label>
<div class="attr-value">
<label class="attr-value-option"><input type="checkbox" name="notice" value="true"<?php if($content->notice):?> checked<?php endif?>> <?php echo __('Notice', 'kboard')?></label>
<?php do_action('kboard_skin_editor_option', $content, $board, $builder)?>
<?php if(isset($field['description']) && $field['description']):?><div class="description"><?php echo esc_html($field['description'])?></div><?php endif?>
</div>
</div>
<?php endif?>
<?php if(!$board->viewUsernameField()):?>
<input type="hidden" name="secret" value="true">
<div style="overflow:hidden;width:0;height:0;">
<input style="width:0;height:0;background:transparent;color:transparent;border:none;" type="text" name="fake-autofill-fields">
<input style="width:0;height:0;background:transparent;color:transparent;border:none;" type="password" name="fake-autofill-fields">
</div>
<!-- 비밀글 비밀번호 필드 시작 -->
<div class="kboard-attr-row kboard-attr-password secret-password-row required">
<label class="attr-name" for="kboard-input-password"><span class="field-name"><?php echo __('Password', 'kboard')?></span> <span class="attr-required-text">*</span></label>
<div class="attr-value"><input type="password" id="kboard-input-password" class="required" name="password" value="<?php echo esc_attr($content->password)?>"></div>
</div>
<!-- 비밀글 비밀번호 필드 끝 -->
<?php endif?>
<?php
$layout = ob_get_clean();
}
else if(isset($field['meta_key']) && $field['meta_key'] == 'author'){
ob_start();
?>
<input type="hidden" name="secret" value="true">
<?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()):?>
<div class="kboard-attr-row kboard-attr-password">
<label class="attr-name" for="kboard-input-password"><?php echo __('Password', 'kboard')?> <span class="attr-required-text">*</span></label>
<div class="attr-value"><input type="password" id="kboard-input-password" name="password" value="<?php echo esc_attr($content->password)?>" placeholder="<?php echo __('Password', 'kboard')?>..."></div>
</div>
<?php endif?>
<?php
$layout = ob_get_clean();
}
}
return $layout;
}
그대로 사용해도 되는거 맞나요 ㅠㅠ?
안녕하세요~^^
Call to undefined function wp_doing_ajax 메시지 관련해서는
워드프레스 버전 문제로 보입니다.
KBoard 플러그인을 최신 버전으로 업데이트한다면
워드프레스 버전도 최신 버전을 사용해주셔야 합니다.
그리고 올려주신 코드는 입력 필드 설정을 지원하는 스킨에서
게시글 작성 시 무조건 비밀글로 작성되도록 설정하는 코드입니다.
기존에 작성된 비밀글과는 관련이 없습니다.
데이터베이스(DB)에 접속이 가능하시다면
kboard_board_content 테이블에 비밀글로 표시되어야 하는
게시글의 secret 컬럼의 값이 true로 설정되어 있는지 확인해보시겠어요?
고맙습니다.
그럼 이전의 글을 모두 비밀글로 변경하고 싶을때에는 DB를 수정해야하나요?
기존 작성된 게시글을 비밀글로 설정하시려면
데이터베이스(DB)에서 수정하시거나 각 게시글 수정 페이지에서 수정해주셔야 할 듯합니다.
만약, 기존 작성된 모든 게시글을 비밀글로 설정하시려면
아래 코드를 활용해보세요.
add_action('init', 'init_20210624');
function init_20210624(){
global $wpdb;
$board_id = '1'; // 실제 게시판 id로 적용해주세요.
$wpdb->query("UPDATE `{$wpdb->prefix}kboard_board_content` SET `secret`='true' WHERE `board_id`='{$board_id}'");
}
위의 코드에서 $board_id = '1' 부분은 실제 게시판 id로 적용해주세요.
테마의 functions.php 파일에 코드를 추가하거나 Code Snippets 플러그인을 사용해서 코드를 추가할 수 있습니다.
비밀글로 변경된 것을 확인하셨다면 추가한 코드는 지워보세요.
고맙습니다.
오 해결됬습니다 ㅠㅠ 정말 감사합니다!