the_excerpt()で「続きを読む」のリンクを表示させる方法

the_excerpt()を使ったときに続きを読むのリンクをつけたくて探していると、Codexにそれらしい記述があるのを発見。それによると、「投稿で “read more” リンクを作成する」として

function new_excerpt_more($post) {
	return '<a href="'. get_permalink($post->ID) . '">' . 'Read the Rest...' . '</a>';	
}	
add_filter('excerpt_more', 'new_excerpt_more');

というコードが掲載してあります。functions.phpに記述してみると、確かに出力されるのですが、一部出力されない記事もあるようです。それが何か調べてみると、出力される抜粋の文字数が一定数より少ないものは「続きを読む」が出力されていない様子。恐らく「excerpt_more」は抜粋の文字菅一定数を超えたときに実行されるフィルターなんでしょうね。僕は全記事に出力したいんですよ!全記事に!

同じページに、「wp_trim_excerpt」というフィルターも載っていたのでこちらも試してみたところ、このフィルターはthe_excerpt()の実行時に常に実行されるようです。ということで、下記のようにコードを修正。

// 抜粋もしくは本文が一定の文字数を超えたときに実行される
// 文章が途中で切れてしまうものには...を表示
function inc11_excerpt_more($post) {
	return '...';	
}	
add_filter('excerpt_more', 'inc11_excerpt_more');
// the_excerpt実行時に実行される
function inc11_wp_trim_excerpt($excerpt) {
	global $post;
	return $excerpt.'<a href="'.get_permalink($post->ID).'" class="more-link">続きを読む</a>';
}
add_filter('wp_trim_excerpt', 'inc11_wp_trim_excerpt');

これで全ての記事に「続きを読む」リンクを付けることができました。

MW WP Form

MW WP Form はショートコードベースのフォームプラグインです。多くの機能を持っており、例えば、多くのバリデーションルール、問い合わせデータの保存、そしてグラフ機能集計などを使用することができます。

さらに詳しく
Habakiri

Habakiri

Bootstrap ベースのシンプルな WordPress テーマ。レスポンシブ、多くのカスタマイズ機能。圧縮された CSS・JS を使用する高速化対策。Microformats 対応。Sass、クラスベースの functions.php。

さらに詳しく
basis-stylus

Basis

軽量なレスポンシブ Stylus/CSS フレームワーク。Flexbox ベースのグリッドシステム、疎結合なコンポーネント、バーティカルリズム。

さらに詳しく