티스토리 뷰
오늘도 개발자/WEB&워드프레스
[wordpress] Kboard 게시판 썸머노트(Summernote)이용시 이미지 업로드 오류 회피법
오늘도공대생 2022. 3. 26. 23:17워드프레스 게시판 플러그인으로 kboard를 사용하는 경우가 많습니다.
그런데 게시판의 본문 에디터로 썸머노트를 이용할 때 에러를 일으키는 경우가 종종 있습니다.
특히, 본문에 이미지를 삽입할 때 [kboard 미디어 추가] 기능을 이용하지 않고 본문에 직접 복사-붙여넣기를 하거나 썸머노트 이미지 삽입 기능을 이용할 경우 이미지를 TXT형태인 base64로 저장하게되는데 이때 문제가 주로 발생됩니다.
에러 상황은 아래와 같습니다.
Error Case #1
아래와 같은 에러 메세지 발생
Warning: count(): Parameter must be an array or an object that implements Countable in /www_root/wp-includes/formatting.php on line 3361
Error Case #2
게시글에 접속할 경우 게시판 오류가 발생하여 빈 화면으로 출력됨
이 때 최신글 보기로 본문 내용을 가져오거나 할 경우 500번 에러가 발생하기도 함
솔루션
이러한 문제를 회피 하기 위해서는 썸머노트의 '이미지 추가' 메뉴를 삭제하고 '복사-붙여넣기' 기능을 막는 것 입니다.
워드프레스 theme 디렉토리의 function.php 파일에 아래 코드를 추가해주세요
add_action('wp_head', 'summernote_menu_select');
function summernote_menu_select(){
// 썸머노트 유틸리티 메뉴 중 이미지 첨부 기능을 제거하기 위함
?>
<script>
jQuery(document).ready(function(){
var kboard_mod = jQuery('input[name=mod]', '.kboard-form').val();
if(kboard_mod == 'editor'){
if(kboard_current.use_tree_category == 'yes'){
kboard_tree_category_parents();
}
if(kboard_current.use_editor == 'snote'){ // summernote
jQuery('.summernote').each(function(){
var height = parseInt(jQuery(this).height());
var placeholder = jQuery(this).attr('placeholder');
var lang = 'en-US';
if(kboard_settings.locale == 'ko_KR'){
lang = 'ko-KR';
}
else if(kboard_settings.locale == 'ja'){
lang = 'ja-JP';
}
jQuery(this).summernote({
toolbar: [
['style', ['style']],
['fontsize', ['fontsize']],
['font', ['bold', 'underline', 'clear']],
['fontname', ['fontname']],
['color', ['forecolor', 'color']],
['table', ['table']],
['para', ['ul', 'ol', 'paragraph']],
['height', ['height']],
['insert', ['link', 'video']],
['view', ['fullscreen', 'codeview', 'help']],
],
fontNames: ['Arial', 'Arial Black', 'Comic Sans MS', 'Courier New', 'Helvetica Neue', 'Helvetica', 'Impact', 'Lucida Grande', 'Tahoma', 'Times New Roman', 'Verdana', 'Nanum Gothic', 'Malgun Gothic', 'Noto Sans KR', 'Apple SD Gothic Neo'],
fontNamesIgnoreCheck: ['Arial', 'Arial Black', 'Comic Sans MS', 'Courier New', 'Helvetica Neue', 'Helvetica', 'Impact', 'Lucida Grande', 'Tahoma', 'Times New Roman', 'Verdana', 'Nanum Gothic', 'Malgun Gothic', 'Noto Sans KR', 'Apple SD Gothic Neo'],
fontSizes: ['8','9','10','11','12','13','14','15','16','17','18','19','20','24','30','36','48','64','82','150'],
lang: lang,
height: height,
placeholder: placeholder,
// 본문 내 이미지 붙여넣기 기능 제거
callbacks: {
onImageUpload: function (data) {
data.pop();
}
}
});
});
}
}
});
</script>
<?php
}
toolbar를 수정하여 이미지 첨부 메뉴를 삭제하고,
onImageUpload callback을 이용해 이미지 붙여넣기 기능의 동작을 막았습니다.
'오늘도 개발자 > WEB&워드프레스' 카테고리의 다른 글
Amazon Simple Email Service (SES) (0) | 2022.03.27 |
---|---|
[wordpress] wp-members 로그인, 로그아웃, 회원가입시 리다이렉션 (0) | 2022.03.27 |
[Bitnami&Wordpress] Creating Let's Encrypt certificate: Automatic renewal not working (0) | 2022.03.24 |
[Wordpress] Bitnami 초기 계정 정보 확인 방법 (아이디, 패스워드) (0) | 2022.03.22 |
[WEB] 웹브라우저 URL 주소 복사 시 자동으로 인코딩 될 경우 (1) | 2022.03.21 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- MySQL
- Lighitsail
- 라이트세일
- FTP권한문제
- URL디코딩
- 한빛미디어
- 11번가 아마존 #우주패스 #우주쓰레기
- 스프레드연산자
- wp-members
- ontent
- 코스모스팜
- php
- wordpress #워드프레스 #url
- 철거
- url복사
- 지대공
- WordPress
- 빛의성당
- 고흐1인칭시점
- 이사
- 썸머노트
- 빈화면
- Theme Customization
- 사용자정의하기
- 워드프레스
- 도스 코파스
- Sanitize
- URL인코딩
- CSPRNG
- 이전설치
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함