위젯에 공지사항 추가하기

k보드 위젯으로 공지사항을 메인페이지에 노출시켰는데, 같은 형식으로 '모집중'이라는 목록을 추가하고 싶어요.

이를테면 글쓰기에서 공지사항 체크박스 옆에 '모집중'이라는 체크박스를 두고

체크된 글들은 추출해서 메인페이지에 띄우는 형식이지요.

공지사항을 하나 더 둔다고 생각할 수 있겠네요. 어떻게 하면 될까요?

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 안녕하세요~^^

    우선 글쓰기 페이지에 입력 필드를 추가해보세요.

     

    입력 필드를 지원하는 스킨에서 새로운 입력 필드 추가하는 방법은

    아래의 링크를 참고해보시겠어요?

    KBoard(케이보드) 게시판에 새로운 필드 추가하기

     

    입력 필드를 지원하지 않는 스킨에서 새로운 입력 필드 추가는

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

    워드프레스 게시판 KBoard(케이보드) 새로운 입력 필드 추가 방법 (커스터마이징)

     

    최신 버전의 KBoard 위젯을 사용 중이시라면

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

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

    add_filter('kboard_widget_tab_list', 'my_kboard_widget_tab_list', 10, 1);
    function my_kboard_widget_tab_list($tab_list){
    	$tab_list[] = '모집중';
    	
    	return $tab_list;
    }
    
    add_filter('kboard_widget_list_from', 'my_kboard_widget_list_from', 10, 5);
    function my_kboard_widget_list_from($from, $value, $limit, $exclude, $with_notice){
    	global $wpdb;
    	if($value == '모집중'){
    		$from .= " LEFT JOIN {$wpdb->prefix}kboard_board_option ON `{$wpdb->prefix}kboard_board_content`.`uid` = `{$wpdb->prefix}kboard_board_option`.`content_uid`";
    	}
    	
    	return $from;
    }
    
    add_filter('kboard_widget_list_where', 'my_kboard_widget_list_where', 10, 5);
    function my_kboard_widget_list_where($where, $value, $limit, $exclude, $with_notice){
    	global $wpdb;
    	if($value == '모집중'){
    		$where .= " AND `{$wpdb->prefix}kboard_board_option`.`option_key`='recruitment' AND (`{$wpdb->prefix}kboard_board_option`.`option_value` != '' OR `{$wpdb->prefix}kboard_board_option`.`option_value` IS NOT NULL)";
    	}
    	
    	return $where;
    }

    위의 코드 중에서 recruitment 부분을 실제 추가하신 필드의 메타키로 교체해보세요.

     

    코드를 추가하신 후에는

    워드프레스 관리자 -> 외모 -> 위젯 -> KBoard 위젯 설정에서

    모집중 체크박스를 체크하신 후에 저장하기 버튼을 눌러보세요.

    고맙습니다.

  • 설명 감사드립니다. '모집중'을 입력필드에 넣고 위젯에 추출하기까지 성공했습니다. 그런데 이 필드를 공지사항처럼 로그인하지 않을 시에는 체크박스 자체가 나타나지 않게 하려고 했는데 그건 안되네요.

    모집중을 공지사항 옆에 넣으려고 입력필드 설정을 ...default/editorfield 파일에서 option에서 notice 부분 아래에 다음을 첨가했습니다. "<label class="attr-value-option"><input type="checkbox"name="kboard_option_attendance" value="true"<?php if($content->모집중):?>checked<?php endif?>> 모집중</label>" 

    위젯부분은 말씀하신 대로 테마에 첨가했고요. 

    1. 질문을 요약하면 모집중 필드가 로그인한 상태에서만 뜨도록 하는 방법입니다. 

     2. 추가 질문이 있습니다. 위젯 목록에서 글제목 앞에 페이지제목이 같이 뜨도록 했습니다. php고 뭐고 모르는데 검색하면서 했더니 간신히 됐습니다. 그 다음 문제는 페이지 제목과 글제목이 구별이 안되는 겁니다. 페이지 제목을 글제목보다 한포인트 작게하고 약간 띄어주려면 어떻게 할까요?

    위젯 list.php에서 <?php echo strip_tags($row->title)?> 앞에  <?php echo strip_tags($row->getBoard()->board_name)?>를 넣었습니다. 

    1,2번 모두 k보드 파일에서 작업할 수 있도록 설명해주세요. 감사합니다.

  • 안녕하세요~^^

    1. 워드프레스에서 is_user_logged_in 함수를 사용하시면

    로그인 여부를 체크하실 수 있습니다.

    올려주신 코드를 아래의 코드로 교체해서 확인해보시겠어요?

    <?php if(is_user_logged_in()):?>
    	<label class="attr-value-option"><input type="checkbox"name="kboard_option_attendance" value="true"<?php if($content->모집중):?>checked<?php endif?>> 모집중</label>
    <?php endif?>

     

    스킨 파일 복사해서 작업을 하시는 게 아니라면

    KBoard 플러그인 업데이트 시 수정하신 코드가 지워질 수 있습니다.

    테마 쪽 functions.php 파일에 추가해서 표시하시려면

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

    아래의 코드를 추가해보시겠어요?

    add_action('kboard_skin_editor_option', 'my_kboard_skin_editor_option',10, 3);
    function my_kboard_skin_editor_option($content, $board, $boardBuilder){
    	if(is_user_logged_in() && $board->id == '1'){ // 실제 게시판 id로 적용해주세요.
    		?>
    		<label class="attr-value-option"><input type="checkbox"name="kboard_option_attendance" value="true"<?php if($content->모집중):?>checked<?php endif?>> 모집중</label>
    		<?php
    	}
    }

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

     

    2. 올려주신 코드 대신 아래의 코드로 교체해보시겠어요?

    <span class="kboard-widget-board-name" style=" margin-right: 5px; font-size: 15px;"><?php echo strip_tags($row->getBoard()->board_name)?></span> <span class="kboard-widget-title" style="font-size: 13px;"><?php echo strip_tags($row->title)?></span>

    위의 코드에서 style 쪽 픽셀 값은 적절히 수정해보세요.

    고맙습니다.

  • 감사합니다^^ 곧 설이군요. 새해 복 많이 받으세요^^ 

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