記事の抜粋に自動でもっと読むリンクを付け加える方法
記事一覧ページなどで、本文を全て表示せず数行だけ表示させたいときは
記事ループ内で the_content() ではなく the_excerpt() を使います。
the_content() | 記事の本文を表示するテンプレートタグ。 <!--more-->があれば、それより前の内容を表示。 |
---|---|
the_excerpt() | 記事の抜粋を表示するテンプレートタグ。 |
the_excerpt() は、デフォルトでは110文字と省略文字([...])が表示されますが
この省略文字を変更したり、もっと読むリンクを付ける方法を紹介します。
テーマ別の関数ファイルを作成する
現在使用しているテーマファイル内の functions.php を編集します。
ない場合は同名のファイルを作成しましょう。
抜粋部分の省略文字を変更する
上の functions.php に下記ソースコードを付け加えましょう。
<?php function new_excerpt_more($excerpt) { return str_replace('[...]', '【任意の省略文字】', $excerpt); } add_filter('wp_trim_excerpt', 'new_excerpt_more'); ?>
※すでに functions.php 内に new_excerpt_more が存在する場合は中身を変更します。
抜粋文の後にもっと読むリンクを付け加える
省略文字の変更同様、functions.php に下記ソースコードを付け加えます。
<?php function new_excerpt_more( $more ) { return ' <a class="read-more" href="'. get_permalink( get_the_ID() ) . '">もっと読む</a>'; } add_filter( 'excerpt_more', 'new_excerpt_more' ); ?>
このリンクは改行されずに抜粋文の後ろにつくので、必要であればCSSで調整をしましょう。
抜粋部分の省略文字を変更し、もっと読むリンクを付け加える
今度は上二つの合体ですが、関数名がだぶらないように中身で合わせます。
<?php function new_excerpt_more( $more ) { return ' 【任意の省略文字】 <a class="read-more" href="'. get_permalink( get_the_ID() ) . '">もっと読む</a>'; } add_filter( 'excerpt_more', 'new_excerpt_more' ); ?>
これで省略文字の変更と、もっと読むリンクの追加ができます。
抜粋文は自分で自由に決めたい!という方はこちらの記事をご覧ください。
>> 記事抜粋文を自由に入力できるようにする方法
関連記事