KBoard enqueue 설정

안녕하세요. KBoard(케이보드) 덕분에 게시판 잘 쓰고 있습니다.

궁금한 것이 있어 문의드립니다.

만들고 싶은 사이트가 있어 초보가 이리저리 공부해가며 사이트를 만들었습니다.

모든 페이지에서, k보드가 다 enqueue 되고 있더라구요. 아래처럼.. (head 부분에서 enqueue..)

https://drive.google.com/open?id=1NemV8rDZh7CQu_OJmPkXa8NZIk23ssQE

그래서 제가 KBoard를 사용하는 특정페이지에서만 enqueue되겠금 설정을 하고 싶습니다.

실례가 안된다면 KBoard의 어느 부분에서 enqueue 설정을 하면될지 조언을 얻을수 있을까요?

 

감사합니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
  • 안녕하세요~^^

    KBoard(케이보드)에는 게시판과 최신글 기능이 있습니다.

    게시판과 최신글이 어느 페이지에 삽입되어 있는지 알아내는 방법이 쉽지가 않아서요.

    최신글의 경우 홈페이지 하단에 항상 표시되는 경우도 있을 수 있고요.

    그래서 모든 페이지서 게시판의 스타일시트(CSS) 파일이 추가됩니다.

     

    아무튼

    FTP로 접속해서 파일을 확인해보세요.

    /wp-content/plugins/kboard/index.php 파일에서 아래 코드가 스킨의 스타일시트(CSS) 파일을 추가하는 코드입니다.

    function kboard_style(){
    	// KBoard 미디어 추가 스타일 속성 등록
    	wp_enqueue_style('kboard-editor-media', KBOARD_URL_PATH . '/template/css/editor_media.css', array(), KBOARD_VERSION);
    	
    	// 활성화된 스킨의 style.css 등록
    	$skin = KBoardSkin::getInstance();
    	foreach($skin->getActiveList() as $skin_name){
    		wp_enqueue_style("kboard-skin-{$skin_name}", $skin->url($skin_name, 'style.css'), array(), KBOARD_VERSION);
    	}
    }

     

    그리고 KBoard 댓글 스킨의 스타일시트(CSS) 파일을 추가하는 코드는 아래와 같습니다.

    /wp-content/plugins/kboard-comments/index.php 파일에서 아래 코드입니다.

    function kboard_comments_style(){
    	$skin = KBCommentSkin::getInstance();
    	foreach($skin->getActiveList() as $skin_name){
    		wp_enqueue_style("kboard-comments-skin-{$skin_name}", $skin->url($skin_name, 'style.css'), array(), KBOARD_COMMNETS_VERSION);
    	}
    }

     

    각각의 함수들은 wp_enqueue_scripts 액션에 등록되어있습니다.

    아래처럼 in_array() 함수를 사용해서 페이지(포스트) ID값을 체크해서 원하는 순간에만 나머지 코드가 동작하도록 할 수 있을 듯합니다.

    function kboard_style(){
    	global $post;
    	
    	if(in_array($post->ID, array('1', '2', '3'))){
    		// KBoard 미디어 추가 스타일 속성 등록
    		wp_enqueue_style('kboard-editor-media', KBOARD_URL_PATH . '/template/css/editor_media.css', array(), KBOARD_VERSION);
    		
    		// 활성화된 스킨의 style.css 등록
    		$skin = KBoardSkin::getInstance();
    		foreach($skin->getActiveList() as $skin_name){
    			wp_enqueue_style("kboard-skin-{$skin_name}", $skin->url($skin_name, 'style.css'), array(), KBOARD_VERSION);
    		}
    	}
    }

     

    고맙습니다.

  • 선생님 답변 주셔서 감사합니다. 즐거운 하루 되시기 바랍니다.

  • 추가적으로 문의드립니다.

     

    스크립트 enqueue 가 되는 것 중에...

    https://drive.google.com/open?id=1YPZI0g2diEfeiXXXfw5aLTyER0bby6U1

    위와 같이 enqueue 되는 것은 어느부분에서 enqueue 되는지 알수 있을까요?

        <?php wp_footer(); ?>

    아마 위의 부분에 hook이 걸려 enqueue 되는 것같은데..

     

    감사합니다.

  • 안녕하세요.

    FTP로 접속해서 /wp-content/plugins/kboard/index.php 파일을 보시면

    kboard_scripts() 함수가 있습니다.

    해당 함수는 올려주신 이미지의 'kboard_settings'와 'kboard_localize_strings' 스크립트를 등록하며

    wp_enqueue_scripts 액션에 등록되어있습니다.

    고맙습니다.

  • 아 그렇군요. 감사합니다.

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