안녕하세요. 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 액션에 등록되어있습니다.
고맙습니다.
아 그렇군요. 감사합니다.