안녕하세요. 질문에 앞서 관련 글을 검색해 봤는데 원하는 답변이 없어 이렇게 글을 올리게 되었습니다.
제가 원하는 기능은 2가지인데요.
(1) 게시판 본문 내용에서 상단, 하단에 원하는 배너를 삽입하고 싶습니다.
배너1
본문
배너2
이런식으로요.
(2) PC와 모바일용 배너를 따로 따로 삽입하고 싶습니다.
지금 PC와 모바일 모두 접속시 PC용 배너만 나오고 있는데요.
PC로 접속했을 때 배너와 모바일로 접속했을 때 배너를 다르게 삽입하고 싶습니다.
감사합니다.
안녕하세요~^^
KBoard 플러그인에 내장되어 있는
kboard_content 필터를 활용하시면 게시글 본문 상단 또는 하단에 배너를 표시하실 수 있습니다.
PC와 모바일에서 이미지를 따로 표시하시려면
워드프레스 내장 함수인 wp_is_mobile 함수를 활용해보세요.
사이트에 접속한 기기가 모바일인지 체크하는 함수입니다.
아래 코드를 추가하시면 PC 화면에서 게시글 본문 상단, 하단에
이미지를 추가하실 수 있습니다.
add_filter('kboard_content', 'kboard_content_20210517', 10, 3);
function kboard_content_20210517($content, $content_uid, $board_id){
if(!wp_is_mobile() && $board_id == '1'){ // 실제 게시판 id로 적용해주세요.
$before_content = '';
ob_start();
?>
<div class="kboard-before-content">
<img src="이미지주소">
</div>
<?php
$before_content .= ob_get_clean();
$after_content = '';
ob_start();
?>
<div class="kboard-after-content">
<img src="이미지주소">
</div>
<?php
$after_content .= ob_get_clean();
$content = $before_content . $content . $after_content;
}
return $content;
}
아래의 코드를 추가하시면 모바일 화면에서 게시글 본문 상단, 하단에
이미지를 추가하실 수 있습니다.
add_filter('kboard_content', 'kboard_content_mobile_20210517', 10, 3);
function kboard_content_mobile_20210517($content, $content_uid, $board_id){
if(wp_is_mobile() && $board_id == '1'){ // 실제 게시판 id로 적용해주세요.
$before_content = '';
ob_start();
?>
<div class="kboard-before-content">
<img src="이미지주소">
</div>
<?php
$before_content .= ob_get_clean();
$after_content = '';
ob_start();
?>
<div class="kboard-after-content">
<img src="이미지주소">
</div>
<?php
$after_content .= ob_get_clean();
$content = $before_content . $content . $after_content;
}
return $content;
}
위의 코드에서 $board_id == '1' 부분은 모두 실제 게시판 id로 적용해주세요.
이미지주소 부분은 실제 이미지 주소로 교체해보세요.
테마의 functions.php 파일에 코드를 추가하거나 Code Snippets 플러그인을 사용해서 코드를 추가할 수 있습니다.
추가로 궁금하신 사항은 댓글로 이어서 남겨주시길 부탁드립니다.
고맙습니다.
감사합니다.
만약, 운영중인 게시판이 2개라면
if(wp_is_mobile() && $board_id == '1, 2')
이렇게 1, 2를 넣어주면 되나요?
아니면 add_filter 함수를 또 추가해줘야 하나요?
여러 개의 게시판에 적용해야 할 경우 새로 필터를 추가해도 되지만
$board_id == '1' 부분을
$board_id == '1' || $board_id == '2'로 교체해보세요.
또는 in_array($board_id, array('1', '2')) 이런 식으로 교체해보시겠어요?
고맙습니다.
감사합니다. 두 번째 방법으로 해결되었습니다.
오늘도 즐거운 하루 되세요.