the_content
の関数は、本文にタグを入れることで表示の文字数を制御できますが、都度入力するのはなかなか面倒なので、その場合は the_excerpt
の関数が便利です。
記事の本文から抜粋した内容を出力
the_excerpt
という関数(テンプレートタグ)を使い、トップページなどに記事の本から抜粋した内容を表示させることができます。
<?php the_excerpt(); ?>
この関数で取得した抜粋は、自動的に110文字で省略され、最後に[…]が追加されます。
抜粋の文字数を変更
the_excerpt
の抜粋の文字数は110文字ですが、この文字数を変更するには、excerpt_length
フィルターを利用する為、functions.php に記述します。
function twpp_change_excerpt_length( $length ) {
return 40;
}
add_filter( 'excerpt_length', 'twpp_change_excerpt_length', 999 );
これを記述して the_excerpt
の関数を記載すると抜粋文字の長さが40文字に変更されますが、文字数を変更するには2行目の return XX;
の数値を修正します。
抜粋の終わりの[…]を変更
抜粋の最後には[…]というのが表示されますが、この終わりの文字を変更したい場合は以下のコードを functions.php に追加します。
function new_excerpt_more($more) {
return 'もっと見る';
}
add_filter('excerpt_more', 'new_excerpt_more');
上記の記述では […] が もっと見る に変更されます。
任意の文字数の抜粋内容を出力
PHPには、ある文字列の中から開始文字数、取得文字数を指定した文字列を抜粋する関数 mb_substr
が用意されています。
functions.php に追記をせずそのまま任意の文字数で出力するには、以下の関数を記述します。
<?php echo mb_substr( get_the_excerpt(), 0, 40 ) . 'もっと見る'; ?>
上記は40文字で、終わりの文字を もっと見る にしています。