WordPressでの抜粋表示

弊社のブログは WordPress を用いていますが、前から気になっていた、ブログトップの投稿一覧を抜粋表示(各投稿を例えば200文字まで表示)する方法についてまとめました。

弊社は古いですが「Twenty Twelve」を使用していますので、その前提で書いていきます。

抜粋表示の方法については、いろいろな方のブログで見つかるのですが、いざ試してみると、動作面でどうしてもうまくいかなかったので保留にしていました。
そのよく書かれている方法は以下の通りです。

content.php 内に以下の呼び出しが見つかります。(引数は省略)

<?php the_content(); ?>

これを以下のように書き換えます。

<?php the_excerpt(); ?>

そうすると、ブログトップの投稿一覧が抜粋表示されます。
ですが、いずれかの投稿を選択してみると、その投稿ページに移りますが、なんとそちらでも抜粋表示になっているという、、それでは肝心の内容が見れないよ、という状態になっていました。

それからさらに調べたところ、以下の記述にすることによって解決できました。

<?php 
if (is_home()) {
	the_excerpt();		// 抜粋を表示
} else {
	the_content();		// 全文を表示
}
?>

つまりは、「is_home()」というブログトップかどうかの判別関数を用いれば良いということでした。ですが、これを触れているブログはほとんど見当たらなかったので、その方々はどうされているのかな、というのが今となっては気になっています。。

少しカスタマイズしたかったので、functions.php に以下を追記しました。

function new_excerpt_mblength($length) {
	return 250;
}
add_filter('excerpt_mblength', 'new_excerpt_mblength');

function new_excerpt_more($more) {
	return '<a href="'. get_permalink($post->ID) . '">' . '...続きを読む' . '</a>';  
}
add_filter('excerpt_more', 'new_excerpt_more');

というわけで、こちらが表示結果です。
http://www.loopsessions.com/blog/

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です