WordPressで投稿の抜粋や本文を出力する時にHTMLを除去する方法

WordPressで投稿の抜粋や本文を出力する時にHTMLを除去する方法

WordPressで投稿の抜粋や本文を出力する時にHTMLを除去する方法

the_excerpt()やthe_content()を使って投稿の抜粋や本文を出力する時に、中に含まれるHTMLを除去する方法についてご紹介いたします。

WordPressで投稿の抜粋や本文を出力する時にHTMLを除去する方法

通常は、抜粋や本文を出力すると、中に含まれるHTMLがそのまま出力されますが、strip_tagsを使うことでHTMLを除去することができます。

さらに、strip_tagsだけだと改行部分に空白スペースが入ってしまうので、str_replaceを使ってこれも完全に除去します。あと、mb_substrで文字数も制限します。

HTMLを除去した抜粋の出力

HTMLを除去したうえで抜粋を出力するには、以下のように記述します。

<?php echo mb_substr(str_replace(array("\r\n", "\r", "\n"), '', strip_tags(get_the_excerpt())), 0, 50); ?>

上記のようにすることで、HTMLを除去した抜粋が50文字表示されます。最後の「50」を変更すれば、出力文字数を変更できます。

文字数の制限をしなくて良い場合は、以下のようにmb_substrを外せばOKです。

<?php echo str_replace(array("\r\n", "\r", "\n"), '', strip_tags(get_the_excerpt())); ?>

HTMLを除去した本文の出力

抜粋ではなく本文のHTMLを除去する場合は、以下のように記述します。

<?php echo mb_substr(str_replace(array("\r\n", "\r", "\n"), '', strip_tags(get_the_content())), 0, 50); ?>

get_the_excerptをget_the_contentに変えているだけですね。文字数の制限をしなくて良い場合は、以下のようにします。

<?php echo str_replace(array("\r\n", "\r", "\n"), '', strip_tags(get_the_content())); ?>

あとがき

投稿一覧などで抜粋や本文のHTMLを除去してデザインを統一したい、というケースは結構あるかと思いますので、覚えておくと便利ですよ。

ちなみに、strip_tagsもstr_replaceもmb_substrも、PHPの関数です。WordPressで用意されている関数というわけではありません。

この記事が気に入ったら
いいね!してね♪

Twitter で

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です