WordPress 要約(Excerpt)でヘッダタグ(Header tag)コンテンツを削除する

Last Updated:2023年07月17日| | コメントを残す

はじめ

WordPress ブログのページにサムネイル、文タイトルと一緒に一定分量の文章要約文(要約文; Excerpt)を表示する場合があります。 カテゴリページやタグのアーカイブページなどでも要約が表示されることもあります。

アーカイブ(アーカイブ)ページに表示されるサマリーステートメント(Excerpt)には通常、HTMLタグは表示されません。 要約文に特定のHTMLを保持したい場合は、WordPress 要約では、特定の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 - WordPress 기본값임.
$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タグのコンテンツが表示されないことを確認することができました。

メモ:


コメントを残す

コメント