WordPressの記事一覧ページなどに投稿記事の抜粋文を表示する方法です。
the_excerpt() 関数を使用する
投稿の抜粋を表示するために、任意のテーマファイルで the_excerpt() 関数を使用します。
通常は、archive.php や index.php などのテンプレートファイルに配置します。
<?php the_excerpt(); ?>
抜粋の長さを制御する
the_excerpt()関数を使用すると、デフォルトでは55ワードの抜粋が表示されます。抜粋の長さを制御するには、以下のコードをfunctions.phpファイルに追加します。
function custom_excerpt_length($length) {
return 20; // 抜粋の長さを20ワードに設定
}
add_filter('excerpt_length', 'custom_excerpt_length');
return 20; の数値を変更すれば任意の文字数に変更することができます。
抜粋の省略記号を変更する
デフォルトでは、抜粋の末尾に「[…]」が表示されますが、あまり見栄えがよくないので変更することが多いです。
これを変更するには、次のコードをfunctions.phpファイルに追加します。
function custom_excerpt_more($more) {
return '... <a href="' . get_permalink() . '">続きを読む</a>';
}
add_filter('excerpt_more', 'custom_excerpt_more');
上記の例では、custom_excerpt_more という関数を作成し、抜粋の末尾に「… 続きを読む」というリンクを追加しています。get_permalink()関数を使用して続きを読むリンクが正しい記事にリンクするようにしています。
HTMLタグを許可する
デフォルトでは、the_excerpt()関数はHTMLタグを削除します。しかし、HTMLタグを許可したい場合は、以下のコードをfunctions.phpファイルに追加します。
function allow_html_in_excerpt($content) {
return apply_filters('the_content', $content);
}
add_filter('the_excerpt', 'allow_html_in_excerpt');
この例では、allow_html_in_excerpt という関数を作成し、the_excerpt フィルターを使用してHTMLタグを許可しています。これにより、抜粋内でHTMLタグを使用できます。
よくある質問(FAQ)
Q. WordPressで記事の本文を抜粋(excerpt)として表示するにはどうすればよいですか?
A. the_excerpt()でWordPressが自動生成した抜粋を表示します。記事設定画面で抜粋を手動設定している場合はその内容が優先されます。自動抜粋の文字数はexcerpt_lengthフィルターで変更:
add_filter("excerpt_length", fn() => 50);。Q. 本文の途中に「続きを読む」リンクを挿入するにはどうすればよいですか?
A. Gutenbergエディタでは「More」ブロック(続きを読むブロック)を挿入します。クラシックエディタでは「続きを読む」ボタン。the_content()はより多くを表示リンク以前の部分を表示し、以降は詳細ページでのみ表示されます。get_the_content()でより多くを読むタグの前後を制御できます。
Q. HTMLタグを除いたプレーンテキストとして本文を取得するにはどうすればよいですか?
A.
wp_strip_all_tags(get_the_content())でHTMLを除去したテキストを取得できます。wp_strip_all_tagsはスクリプト・スタイルタグの内容も削除します。strip_tags()より安全です。抜粋文字数制限はmb_substr()で日本語対応の文字数制限ができます。
