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');
これで全ての記事に「続きを読む」リンクを付けることができました。