[WordPress] 記事の要約表示あれやこれメモ

急にトップページのレイアウトを変更したくなって、記事の要約出力まわりをごにょごにょいじったのでメモします。
大きく分けると、the_excerpt(); を使う方法と the_content(); の2種類があります。

the_excerpt();を使う場合

the_excerpt()は「抜粋」に入力があればそれを、無ければ本文を吐き出す。

<?php the_excerpt(); ?>

抜粋の文字数を変更する

wp-content/plugins/wp-multibyte-patch/に格納されている「wp-multibyte-patch.php」を修正する。
ファイル中の

'excerpt_mblength' => 30,

の数字が文字数に相当。

今回は思い切って300にしてみました。

最後の[…]を変更する

同ファイル中の

$excerpt_more = apply_filters('excerpt_more', '[...]');

を変更する。
デフォルトでは[…]なのを、今回は…とした。

出力文字数の使い分けがしたい場合

トップページかアーカイブページかで出力したい文字数が異なる場合があるとして。

<?php echo mb_substr(get_the_excerpt(), 0, 30); ?>

というのを使えば文字数の制御ができる。
get_the_excerpt()で取得したテキストから、さらに30文字取得するということ。
なので、excerpt()で取得する文字数以上は取り出せないことに注意。
その場合はexcerpt()の文字数と同じだけ取得する。

これだと、ただテキストを吐き出すだけで、改行が反映されない。
今回は没った。

the_content();を使う場合 & moreタグ

<?php the_content(); ?>

と記述する。
ほったらかしにすると全文吐き出してしまうので、記事中にmoreタグで制御。
テキストレベルではなくソースレベルで吐き出してくれるので画像とかも表示される。
記事毎にどこまで抜粋するかを選択できるという特徴がる。

ただ、今のところどこまで表示するか等のルールが自分にないのと、過去の投稿すべてにmoreタグを付けるのがめんどくさいので、今回は没。

参考サイト