안녕하세요. 카테고리를 사용해서 답변대기 답변완료 등을 지정하고 있는데
내용이 비어있는 게시물은 자동으로 답변 완료 카테고리를 달고 싶어서
<?php if($board->isAdmin()):?>
<div class="kboard-attr-row">
<label class="attr-name" for="kboard-select-category2">
<?php echo __( 'Status', 'kboard')?>
</label>
<div class="attr-value">
<select id="kboard-select-category2" name="category2">
<option value="">상태없음</option>
<?php while($board->hasNextCategory()):?>
<option value="<?php echo $board->currentCategory()?>" <?php if($content->category2 == $board->currentCategory()):?> selected
<?php endif?>>
<?php echo $board->currentCategory()?></option>
<?php endwhile?>
</select>
</div>
</div>
<?php elseif(empty($content->content)):?>
<input type="hidden" name="category2" value="<?php echo $content->category2?$content->category2:$board->category[1]?>">
<?php else:?>
<input type="hidden" name="category2" value="<?php echo $content->category2?$content->category2:$board->category[0]?>">
<?php endif?>
위와 같이 수정했는데 empty 가 먹히지 않는것 같습니다. length($content -> content) == 0 로도 해보았고 $content -> content == '' 으로도 해보았는데
다른 방법이 있을까요 ? 감사합니다
최신글 이메일 알림 기능을 말씀하시는 건지요?
해당 기능은 게시글 본문 내용에 상관없이 발송되기 때문에
본문 내용이 있을 때만 메일을 보내시려면
별도로 코드를 작성해주셔야 할 듯합니다.
메일을 보내는 건 워드프레스 내장 함수인 wp_mail 함수를 활용해보시겠어요?
최신글 이메일 알림 경우에도 wp_mail 함수를 활용해서 메일을 보내고 있습니다.
wp_mail 함수에 대한 자세한 내용은
아래의 링크를 참고해보세요.
https://developer.wordpress.org/reference/functions/wp_mail/
고맙습니다.
잘 해결하였습니다! 감사합니다 :)
하나 더 질문이 있는데 제가 새 게시글이 올라오면 이메일을 받게끔 해두었는데 내용이 없다면 이메일 발송이 안되게 하고싶은데 이부분은 어디서 수정할수있을까요?
코드를 잘못 수정하신 듯합니다.
아래의 코드를 활용해보시겠어요?
add_action('kboard_document_insert', 'kboard_document_insert_20200519', 10, 4);
add_action('kboard_document_update', 'kboard_document_insert_20200519', 10, 4);
function kboard_document_insert_20200519($content_uid, $board_id, $content, $board){
if($board_id == '1'){ // 실제 게시판 id로 적용해주세요.
if(!$content->content){
$board->initCategory2();
$data['category2'] = $board->category[1];
$content->updateContent($data);
}
}
}
위의 코드에서 $board_id == '1' 부분은 실제 게시판 id로 적용해주세요.
해당 코드를 적용하시면 게시글 등록/수정 시 게시글 본문 내용이 비어있다면
게시판 설정 페이지에서 카테고리2 입력 필드에 입력한 2번째 카테고리로 적용됩니다.
게시글 수정 시에는 적용하지 않게 하시려면
위의 코드 중 아래의 코드를 찾아서 지워보시겠어요?
add_action('kboard_document_update', 'kboard_document_insert_20200519', 10, 4);
고맙습니다.
add_action('kboard_document_insert', 'test',10,2);
function test($board_id, $content_uid) {
$content = new KBContent();
$content->initWithUID($content_uid);
$board = $content->getBoard();
if($content->content == '') {
$content->category2 = $board->category[1];
return $content;
}
}
이렇게 코드를 짜봤는데 잘못된게 어디일까요? ㅠㅠ
도움 주시면 감사하겠습니다 ㅜㅜ
editor.php 에서 수정했습니다!
안녕하세요~^^
해당 코드는 어느 부분에 추가하신 건지요?
KBoard 플러그인에서 게시글 내용이 비었는지 체크하시려면
$content->content == '' 또는 !$content->content 코드로 체크해주시면 됩니다.
올려주신 코드에서 어느 부분이 실행되고 있는지요?
게시글 입력 후 새로운 코드를 추가하고 실행하게 하시려면
kboard_document_insert 액션 사용도 고려해보세요.
KBoard 플러그인 주요 액션과 필터는
아래의 링크를 참고해보세요.
https://www.cosmosfarm.com/products/kboard/hooks
고맙습니다.