워드프레스 요약문(Excerpt)에서 헤더 태그(Header tag) 콘텐츠 제거하기

참고: 인기 테마인 BE 테마(33%)The 7(35%) 할인 행사를 진행하고 있습니다.
참고

들어가며

워드프레스 블로그 페이지에 썸네일, 글 제목과 함께 일정 분량의 글 요약문(요약글; Excerpt)을 표시하는 경우가 많습니다. 카테고리 페이지나 태그 아카이브 페이지 등에서도 요약문이 표시되기도 합니다.

아카이브(보관물) 페이지에 표시되는 요약문(Excerpt)에는 보통 HTML 태그가 표시되지 않습니다. 만약 요약문에 특정 HTML을 유지시키고 싶은 경우에는 “워드프레스 요약문에서 특정 HTML 태그를 유지시키는 방법” 글을 참고해보시기 바랍니다.

글을 작성할 때 Header 태그(H1 ~ H6)를 사용하여 일목요연하게 구성하면 글의 가독성이 향상되어 읽는 사람이 쉽게 내용을 파악할 수 있습니다. 그리고 이렇게 글을 구성하는 것이 검색엔진 최적화(SEO)에도 도움이 됩니다(“SEO에 유리한 글을 작성하는 방법” 참고).

Header 태그 사용 시 요약문에 Header 태그 콘텐츠가 표시됨

하지만 Header 태그를 사용하여 글을 작성하면 이 헤더 태그(제목 태그)의 콘텐츠도 요약문에 표시됩니다. 예를 들어, 다음 그림과 같이 H3 태그를 사용하여 소제목을 붙이는 경우:

헤더 태그

요약문에서는 다음과 같이 H3 태그 부분이 표시됩니다.

요약문에서 헤더 태그 컨텐츠

경우에 따라 이러한 Header 태그 콘텐츠 부분이 표시되지 않기를 원할 수 있습니다. 이 경우 아래의 방법으로 헤더 태그의 컨텐츠가 요약문에 표시되지 않도록 할 수 있습니다.

요약문에서 Header 태그 콘텐츠 제거하기

요약문에서 Header 태그(h1 ~ h6)의 내용이 표시되지 않도록 하려면 다음 코드를 사용 중인 테마의 함수 파일(functions.php)에 추가하면 됩니다. (함수 파일에 추가하는 방법은 이 글을 참고해보시기 바랍니다.)

function bac_wp_strip_header_tags( $text ) {
$raw_excerpt = $text;
if ( '' == $text ) {
//Retrieve the post content - 포스트 콘텐츠 가져오기.
$text = get_the_content('');
//remove shortcode tags from the given content - 해당 콘텐츠에서 숏트코드 태그 제거.
$text = strip_shortcodes( $text );
$text = apply_filters('the_content', $text);
$text = str_replace(']]>', ']]>', $text);

//Regular expression that strips the header tags and their content - 헤더 태그와 헤더 태그의 콘텐츠를 제거하는 정규식(정규표현식).
$regex = '#(<h([1-6])[^>]*>)\s?(.*)?\s?(<\/h\2>)#';
$text = preg_replace($regex,'', $text);

/***Change the excerpt word count - 요약문 단어수 변경.***/
$excerpt_word_count = 55; //This is WP default - WP 기본값임.
$excerpt_length = apply_filters('excerpt_length', $excerpt_word_count);

/*** Change the excerpt ending - Excerpt Ending 변경.***/
$excerpt_end = '[...]'; //This is the WP default - 워드프레스 기본값임.
$excerpt_more = apply_filters('excerpt_more', ' ' . $excerpt_end);

$excerpt = wp_trim_words( $text, $excerpt_length, $excerpt_more );
}
return apply_filters('wp_trim_excerpt', $excerpt, $raw_excerpt);
}
add_filter( 'get_the_excerpt', 'bac_wp_strip_header_tags', 5);
// 출처: "How To Remove Header Tags and Their Content in WordPress Excerpt"

위의 코드를 함수 파일에 추가하여 테스트해보니 원하는 대로 요약문에서 Header 태그 콘텐츠가 표시되지 않는 것을 확인할 수 있었습니다.

참고:



기부를 통해 이 블로그를 후원하실 수 있습니다.
워드프레스 설치/제작/문제해결이 필요한 경우 서비스(유료)를 요청해주세요.