substr을 이용할 경우 한글을 일정한 숫자로 자를때 multi-byte 문자 특정상 자른 글자의 마지막 부분이 깨져버리는 문제 때문에, 제 경우는 개인적으로 함수를 만들어 사용해 왔습니다만, 이번에 워드프레스 함수를 뒤져보니, 그 문제를 해결한 것으로 보이는 함수가 존재하더군요.
wp_html_excerpt() 라는 함수입니다.
다른 곳에 있는 제목을 짧게 줄이는 경우는 테마의 템플릿 파일에서 해당 부분을 찾아서 wp_html_excerpt함수를 적용해 주면 되지만, 사이드 바의 경우 위젯을 사용하는게 요즘 일반적이고 이 위젯들이 워드프레스의 함수를 이용해서 출력되기때문에(기본 위젯의 경우), 이 함수 자체를 수정하거나 (이 방법은 여러모로 권장하고 싶지 않네요) 플러그인을 만들어서 적용하는 방법밖에는 없습니다.
그나마 가장 간단한 방법 하나를 소개해 드릴께요.(default 테마 기준)
themes/default/sidebar.php 파일을 열어 맨 위에 아래 내용을 추가하세요.
(sidebar.php를 수정하는 이유는 다른곳이 아닌 사이드바 위젯에만 적용시키기 위함입니다. 다른 곳의 글 제목이 모두 짧게 잘려버리면 안되겠죠.)
<?php
function my_title_excerpt($title) {
$title = wp_html_excerpt($title, 80);
return $title;
}
add_filter('the_title', 'my_title_excerpt');
?>
위에서 ’80’ 대신에 원하시는 글자수를 넣어주시면 됩니다.
이제 sidebar.php의 맨 아래에 아래 내용을 추가하세요.
(적용시켰던 함수를 다시 제외 시켜줍니다.)
<?php
remove_filter('the_title', 'my_title_excerpt');
?>
이렇게 하면 모든 사이드바 위젯들에서 "글의 제목"들이 모두 80글자 이내로 잘리게 될겁니다.
시간이 여의치 않아 직접 테스트해 보진 않았지만, 어느정도의 해결책은 될거에요.
즐거운 워프나날이 되시길~