다른 스킨의 답글 다는 기능을 contact form 스킨에 넣어 답글다는 기능을 추가하였습니다.
답글을 달때 editor.php의 화면이 나오게 되는데 평소에 사용하는 editor 필드와 답글 필드를 별개로 제작하고싶습니다.
필드들은 editor-fields.php에 입력되어 있어 editor-fields.php에 if문을 걸려고 하는데 '답글일 경우'라는 조건을 뭐라고 입력해야할까요?
<?php if($content->parent_uid):?>를 사용해봤지만 게시글이 나오지 않았습니다.
항상 감사합니다 :)
감사합니다!! 잘 적용되었습니다 :)
이전 댓글의 코드 대신
아래의 코드로 교체해서 테스트해보시겠어요?
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'] = '파일';
}
문구는 적절히 수정해주세요.
고맙습니다.
감사합니다ㅠㅠ 그런데 if는 작동이 잘 되는데 else부분의 답글이 아닐때 지울 필드들은 작동이 안되네요ㅠㅠ...?
그리고 attach라는 메타키를 가진 파일첨부 필드의 label을 답글에서 다른 label로 보이게 텍스트를 변경하고 싶은데 어떻게 하면 될까요...
항상 친절한 답변 감사합니다!
안녕하세요~^^
입력 필드 설정 기능을 지원하는 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 부분은 답글이 아닐 때 지울 필드의 메타키로 교체해보세요.
메타키는 입력필드 설정 페이지에 각 필드 설정에서 확인하실 수 있습니다.
고맙습니다.