記事の抜粋に自動でもっと読むリンクを付け加える方法

カスタム

wpphp_excerpt_link

記事一覧ページなどで、本文を全て表示せず数行だけ表示させたいときは
記事ループ内で 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' );
?>

これで省略文字の変更と、もっと読むリンクの追加ができます。

抜粋文は自分で自由に決めたい!という方はこちらの記事をご覧ください。
>> 記事抜粋文を自由に入力できるようにする方法

カスタム

関連記事