코스모스팜 스레드

contact form 답글

다른 스킨의 답글 다는 기능을 contact form 스킨에 넣어 답글다는 기능을 추가하였습니다.

답글을 달때 editor.php의 화면이 나오게 되는데 평소에 사용하는 editor 필드와 답글 필드를 별개로 제작하고싶습니다.

필드들은 editor-fields.php에 입력되어 있어 editor-fields.php에 if문을 걸려고 하는데 '답글일 경우'라는 조건을 뭐라고 입력해야할까요?

 

<?php if($content->parent_uid):?>를 사용해봤지만 게시글이 나오지 않았습니다. 

항상 감사합니다 :)

무제한으로 웹사이트를 만드세요. (코스모스팜 무제한 라이센스)
무제한으로 웹사이트를 만드세요. (코스모스팜 무제한 라이센스)
  • 안녕하세요~^^

    입력 필드 설정 기능을 지원하는 KBoard 플러그인 게시판 스킨을 사용하는 경우

    스킨 파일을 직접 수정하지 않고 테마 쪽 functions.php 파일에 코드를 추가해서

    일반글과 답글을 쓸 때 입력 필드를 다르게 표시할 수 있습니다.

     

    우선, KBoard 입력 필드 설정 페이지에서 일반 글쓰기 할 때 표시할 필드와

    답글 쓸 때 표시할 필드를 모두 추가해주세요.

    워드프레스 관리자 -> KBoard -> 게시판 목록 -> 게시판 선택 -> 입력필드 설정 페이지에서

    추가해주시면 됩니다.

     

    워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일 하단에

    아래의 코드를 추가해보세요.

    add_filter('kboard_skin_fields', 'my_kboard_skin_fields', 10, 2);
    function my_kboard_skin_fields($fields, $board){
    	$builder_mod = kboard_builder_mod();
    	$parent_uid = kboard_parent_uid();
    	
    	if($board->id == '1' && $builder_mod == 'editor'){
    		if($parent_uid){
    			// 답글일 때 지울 필드의 메타키로 교체해주세요.
    			unset($fields['메타키1']);
    			unset($fields['메타키2']);
    			unset($fields['메타키3']);
    		}
    		else{
    			// 답글이 아닐 때 지울 필드의 메타키로 교체해주세요.
    			unset($fields['메타키4']);
    			unset($fields['메타키5']);
    		}
    	}
    	
    	return $fields;
    }

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

    위의 코드에서 메타키1, 메타키2, 메타키3 부분은 답글일 때 지울 필드의 메타키로 교체해주세요.

    메타키4, 메타키5 부분은 답글이 아닐 때 지울 필드의 메타키로 교체해보세요.

    메타키는 입력필드 설정 페이지에 각 필드 설정에서 확인하실 수 있습니다.

    고맙습니다.

  • 감사합니다ㅠㅠ 그런데 if는 작동이 잘 되는데 else부분의 답글이 아닐때 지울 필드들은 작동이 안되네요ㅠㅠ...?

    그리고 attach라는 메타키를 가진 파일첨부 필드의 label을 답글에서 다른 label로 보이게 텍스트를 변경하고 싶은데 어떻게 하면 될까요...

    항상 친절한 답변 감사합니다!

  • 이전 댓글의 코드 대신

    아래의 코드로 교체해서 테스트해보시겠어요?

    add_filter('kboard_skin_fields', 'my_kboard_skin_fields', 10, 2);
    function my_kboard_skin_fields($fields, $board){
    	$builder_mod = kboard_builder_mod();
    	$parent_uid = kboard_parent_uid();
    	
    	if($board->id == '1' && $builder_mod == 'editor'){
    		if($parent_uid){
    			foreach($fields as $key => $field){
    				// 답글일 때 지울 필드의 메타키로 교체해주세요.
    				if(in_array($field['meta_key'], array('메타키1', '메타키2', '메타키3'))){
    					unset($fields[$key]);
    				}
    				
    				if(in_array($field['meta_key'], array('attach'))){
    					$fields[$key]['field_name'] = '파일';
    				}
    			}
    		}
    		else{
    			foreach($fields as $key => $field){
    				// 답글이 아닐 때 지울 필드의 메타키로 교체해주세요.
    				if(in_array($field['meta_key'], array('메타키4', '메타키5'))){
    					unset($fields[$key]);
    				}
    			}
    		}
    	}
    	
    	return $fields;
    }

    게시판 id와 메타키 부분은 이전 댓글과 동일하게 적용해주시면 됩니다.

     

    위의 코드 중에서 아래의 코드가 답글일 때

    파일 필드의 레이블을 수정하는 코드입니다.

    if(in_array($field['meta_key'], array('attach'))){
    	$fields[$key]['field_name'] = '파일';
    }

    문구는 적절히 수정해주세요.

    고맙습니다.

  • 감사합니다!! 잘 적용되었습니다 :)

이미지 사진은 imgur에 업로드한 뒤 링크 걸어주세요.
무제한으로 웹사이트를 만드세요. (코스모스팜 무제한 라이센스)