急にトップページのレイアウトを変更したくなって、記事の要約出力まわりをごにょごにょいじったのでメモします。
大きく分けると、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タグを付けるのがめんどくさいので、今回は没。
CONVERSATION