제목 고정 관련 질문 ( 공지사항 제외한 게시글, 게시글 원문, 게시글 답글 )

https://www.cosmosfarm.com/threads/document/42260

의 내용을 확인했습니다만, 몇가지 추가 질문이 있어서 글을 남겨요

 

1. 어느 위치의 소스를 수정 해야하나요?

2. 게시판 id 값을 입력하는 부분에 1개 이상의 id 값을 입력할때는 어떻게 해야하나요?

3. 공지사항을 제외한 일반 게시글에 제목을 고정 하려면 어떻게 해야하나요?

4. 게시글의 제목 말고 답변의 제목을 고정 하려면 어떻게 해야하나요?

5. 글쓰기 페이지에서 제목을 수정할 수 없게도 적용이 가능할까요?

 

여기저기 질문과 답변이 흩어져 있지만 소스를 일괄적으로 적용하자니,  php를 잘 몰라서 문의 드립니다 ^^

가급적이면 저 위의 모든 내용이 일괄 정리되었으면 좋겠어요!

알려주신다면 좋은 예시 원문이 될것같아요, 부탁드립니다!

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
  • 안녕하세요~^^

    1. PHP 코드는 테마 쪽 functions.php 파일에 추가하시거나

    Code Snippets 플러그인을 사용해서 코드를 추가할 수 있습니다.

     

    2. 여러 개의 게시판에 적용하시려면

    올려주신 링크의 코드 중

    $board->id == '1' 부분을 in_array($board->id, array('1', '2', '3')) 이런 식으로 적용해보시겠어요?

     

    3. 공지사항을 제외한 일반 게시글에만 적용하는 건

    올려주신 링크에 안내되어 있는 코드에 적용되어 있습니다.

     

    4. 답글 작성 시 제목은 RE: 원글제목 이런 식으로 표시됩니다.

    올려주신 링크의 코드를 활용해서 답글에만 제목을 고정되게 하시려면

    아래의 코드를 찾아서

    $name == 'title' && !$content->notice && $board->id == '1'

    아래의 코드로 교체해보세요.

    $name == 'title' && !$content->notice && kboard_parent_uid() && $board->id == '1'

     

    5. 게시글 수정 시 제목을 수정할 수 없게 하시려면

    아래의 코드를 활용해보세요.

    add_filter('kboard_get_template_field_html', 'kboard_get_template_field_html_20210104', 10, 4);
    function kboard_get_template_field_html_20210104($html, $field, $content, $board){
    	if($field['meta_key'] == 'title' && kboard_uid() && $board->id == '1'){ // 실제 게시판 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'];;
    		$placeholder = (isset($field['placeholder']) && $field['placeholder']) ? $field['placeholder'] : '';
    		$default_value = (isset($field['default_value']) && $field['default_value']) ? $field['default_value'] : '';
    		
    		ob_start();
    		?>
    		<div class="kboard-attr-row <?php echo esc_attr($field['class'])?> required">
    			<label class="attr-name" for="<?php echo esc_attr($meta_key)?>"><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="<?php echo esc_attr($meta_key)?>" name="title" class="required" value="<?php echo $content->title?esc_attr($content->title):esc_attr($default_value)?>"<?php if($placeholder):?> placeholder="<?php echo esc_attr($placeholder)?>"<?php endif?> readonly>
    				<?php if(isset($field['description']) && $field['description']):?><div class="description"><?php echo esc_html($field['description'])?></div><?php endif?>
    			</div>
    		</div>
    		<?php
    		$html = ob_get_clean();
    	}
    		
    	return $html;
    }

    위의 코드에서 $board->id == '1' 부분은 실제 게시판 id로 적용해보세요.

     

    테마 쪽 functions.php 파일에 추가하시거나

    Code Snippets 플러그인을 사용해서 코드를 추가할 수 있습니다.

    고맙습니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요