WordPressで記事の概要を文字数指定して、更に改行コードを削除する

WordPress

WordPressで記事の概要を指定する場合、the_excerpt() を使うと、段落のPや改行が出力されてしまう。

そんなソースコードを見てしまうと、あまり気持ちの良いものではないので、タグと改行コードを削除しつつ文字数を指定して出力する方法です。

HTMLのタグを削除する時に、strip_tags()とhtmlspecialchars()ではどちらを使う方がいいのかな?と思いましたが、「PHPで出力するときの注意(strip_tagsじゃなくhtmlspecialcharsを使おう的な)」という記事を見てhtmlspecialchars() にしてみました。

<?php
	$excerpt = htmlspecialchars($post-&gt;post_content,ENT_QUOTES,"UTF-8");
	$excerpt = str_replace(array("\r\n","\r","\n"), '', $excerpt);
	$excerpt = mb_substr($excerpt, 0, 60) . "…";
?>
<meta name="description" content="&lt;?php echo $excerpt; ?>">

htmlspecialchars()を使ってタグを除去します。
文字コードの指定は、自分の環境に合わせます。

str_replace()を使って改行を置き換えています。

mb_substr()を使って文字数を指定しています。
0文字目から60文字目までを取り出します。
出力する文字数を変更したい場合は、この60を変更してください。
最後に、文字列連結演算子(.)を使って最後に「…」を追加しています。
不要の場合は削除します。

関連記事