일반 디폴트 게시판을 이용해서 커스텀마이징을 중이고,, 비밀번호 항목을 삭제하고 싶어 답변 내용을 찾던 중에
아래 답변해주신 부분을 찾았는데,
아래 코드는 게시판 1개만 비밀번호 항목 삭제가 가능한데, 비밀번호 삭제하려는 게시판이 2개 이상인 경우 어떻게 코드를 수정하여 작성하면 될까요?ㅠㅠ
입력 필드 설정을 지원하는 스킨을 사용 중이시라면
워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 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로 적용해주세요.
빠른 답변 진심으로 감사드립니다!!!최고ㅠㅠ♥
안녕하세요~^^
올려주신 코드를 여러 개의 게시판에 적용하시려면
PHP in_array 함수를 활용해보세요.
올려주신 코드 중 $board->id == '1' 부분을
in_array($board->id, array('1','2')) 이런 식으로 교체해보시겠어요?
in_array($board->id, array('1','2','3','4','5')) 이런 식으로 확장해서도 활용 가능합니다.
PHP in_array 함수에 대한 자세한 내용은
아래의 링크를 참고해보세요.
https://www.php.net/manual/en/function.in-array.php
고맙습니다.