내용이 비었는지 확인하기

안녕하세요. 카테고리를 사용해서 답변대기 답변완료 등을 지정하고 있는데 

내용이 비어있는 게시물은 자동으로 답변 완료 카테고리를 달고 싶어서 

 

<?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 == '' 으로도 해보았는데 

다른 방법이 있을까요  ? 감사합니다 

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

    해당 코드는 어느 부분에 추가하신 건지요?

    KBoard 플러그인에서 게시글 내용이 비었는지 체크하시려면

    $content->content == '' 또는 !$content->content 코드로 체크해주시면 됩니다.

     

    올려주신 코드에서 어느 부분이 실행되고 있는지요?

    게시글 입력 후 새로운 코드를 추가하고 실행하게 하시려면

    kboard_document_insert 액션 사용도 고려해보세요.

    KBoard 플러그인 주요 액션과 필터는

    아래의 링크를 참고해보세요.

    https://www.cosmosfarm.com/products/kboard/hooks

    고맙습니다.

  • editor.php 에서 수정했습니다!

  • 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;
        }
    }

     

     

    이렇게 코드를 짜봤는데 잘못된게 어디일까요? ㅠㅠ 

    도움 주시면 감사하겠습니다 ㅜㅜ

  • 코드를 잘못 수정하신 듯합니다.

    아래의 코드를 활용해보시겠어요?

    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);

    고맙습니다.

  • 잘 해결하였습니다! 감사합니다 :) 

    하나 더 질문이 있는데 제가 새 게시글이 올라오면 이메일을 받게끔 해두었는데 내용이 없다면 이메일 발송이 안되게 하고싶은데 이부분은 어디서 수정할수있을까요?

  • 최신글 이메일 알림 기능을 말씀하시는 건지요?

    해당 기능은 게시글 본문 내용에 상관없이 발송되기 때문에

    본문 내용이 있을 때만 메일을 보내시려면

    별도로 코드를 작성해주셔야 할 듯합니다.

     

    메일을 보내는 건 워드프레스 내장 함수인 wp_mail 함수를 활용해보시겠어요?

    최신글 이메일 알림 경우에도 wp_mail 함수를 활용해서 메일을 보내고 있습니다.

     

    wp_mail 함수에 대한 자세한 내용은

    아래의 링크를 참고해보세요.

    https://developer.wordpress.org/reference/functions/wp_mail/

    고맙습니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기