記事の抜粋文に追記タグ以降のテキストも含めたい!

テーマ

wptheme_excerpt_over_text

WordPressの抜粋文は、投稿画面で記事ごとに指定することができます。
また、指定がなくとも記事本文の最初から110文字を抽出したものを抜粋文として扱います。

この110文字というのはデフォルトで指定されている設定値ですが、
110文字以内に「追記タグ」が存在すると、抜粋文もそこで途切れてしまいます。

// 抜粋文を表示する
the_excerpt();

記事の本文例

記事の追記タグを110文字以内に入れます。<!--more-->ここから先は抜粋文に入りません。1234567890123456789012345678901234567890123456789012345678901234567890123ここから先は110文字以降です。

上の記事の抜粋文

記事の追記タグを110文字以内に入れます。

追記タグ以降も抜粋として含めたい場合は、
追記タグ以降を含めた全文を取得する必要があります。

追記タグ以降を含めた記事本文を取得する

the_content() では追記タグ以降は省略されてしまうため、別の方法で本文を取得します。

$post->post_content ループ中の記事の本文を全て取得します。パスワード付きの記事も取得するのでご注意を。
// パスワードのついていない記事のみ抜粋文を表示させる
if ( empty($post->post_password) )
{
	// 追記タグ以降を含めた記事本文の全文を取得する
	// 抜粋文なのでHTMLタグ、ショートコードは削除する
	$content = strip_tags(strip_shortcodes($post->post_content));

	// 180文字まで抽出
	$content = mb_strimwidth($content, 0, 180, '...', 'UTF-8');
	echo $content;
}
// パスワードのついている記事
else
{
	// なくてもいいです
	echo 'この記事はパスワード保護されているため、抜粋文はありません。';
}

the_content() と違い、パスワード保護の有無に限らず取得できてしまうので
パスワードの有無をチェックさせます。保護を今後も使わない場合必要はありません。

また、この方法で抜粋文を表示すると、デフォルトの110文字以上表示できます。
抜粋文のデフォルト文字数は設定から変えられますが、この方法だとテーマだけで変更することができて楽です。

抜粋文の文字数変更だけなら、functions.php を変更する方法があります。
こちらも合わせてどうぞ。
>> WordPressの抜粋文の文字数を110文字から変更したい

テーマ

関連記事