コンテンツ
the_excerpt()関数について
記事本文の抜粋を表示させる場合には、
the_excerpt()
を使います。
基本的な使い方は、こんな感じですね。
<?php if(have_posts()): ?>
<?php while(have_posts()): the_post();?>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?><a></h2>
<?php the_excerpt(); ?>
・
・
<?php endwhile; ?>
<?php endif; ?>
get_the_content()でいったん記事本文を取得してから、
PHPの関数で特定の文字数に丸めて出力してもいいのですが、
それだと面倒なんでthe_excerpt()を使った方が簡単です。
ただ、the_excerpt()で記事抜粋を出力する場合、
デフォルトでは以下の様な仕様になっています。
・出力される文字数は110文字
・末尾に「...」が付与される
これだと110文字と固定されており、末尾にも余計なものが付いていたりと、
不便なこともあります。
そこで、これらの設定を変更する方法を紹介します。
デフォルトの110文字を変更する方法
文字数の変更は、
functions.phpに以下のコードを追加するだけです。
function excerpt_length_alter($length){
return 200;
}
add_filter("excerpt_mblength", "excerpt_length_alter");
これにより、出力する文字数が200文字に変更されます。
※各サイトに合わせて、文字数を変更してください。
末尾の「...」を削除する方法
抜粋末尾の「...」を削除する方法も簡単です。
functions.phpに以下のコードを追加するだけです。
function excerpt_more_alter($more){
return "";
}
add_filter("excerpt_more", "excerpt_more_alter");
これで、「...」が表示されなくなります。
末尾の文字を「...」以外に変更する方法
末尾の文字を、例えば「続きを読む」に変更する場合には、
functions.phpに以下のコードを追加するだけです。
function excerpt_more_alter($more){
return " 続きを読む";
}
add_filter("excerpt_more", "excerpt_more_alter");
これでOKです!
PHP mb_strimwidth()関数を使った変更方法
以前、PHPのmb_strimwidth()関数を使って、
このような書き方をされている方もいました。
function the_excerpt_alter($ontent){
return mb_strimwidth($ontent, 0, 200, " 続きを読む", "UTF-8");
}
add_filter("the_excerpt", "the_excerpt_alter");
mb_strimwidth()関数は便利な関数ですし、これでも近いことは出来ますね。
ただ、PHPのmb_strimwidth()関数は使い方に注意して下さい。
全角文字は1文字で2文字分にカウントされます。
また、「 続きを読む」という文字列も含めて、200文字に丸められます。
その点も含めてコードを書く必要があります。
抜粋とは
最後に、「抜粋」について簡単に説明しておきます。
「抜粋」とは、記事の概要のようなものです。
WordPressの投稿画面には「抜粋」という項目があるので、
そちらに入力したテキストが「抜粋」として扱われます。
※もし「抜粋」の項目が画面にない場合には、画面上の「表示オプション」から表示設定して下さい。
ただ、毎回「抜粋」を入力するのは面倒です。
恐らく、ほとんどの方が入力されていません。
その場合には、記事本文から指定の文字数だけテキストを抜粋してくるので、問題ないです。
この記事へのコメントはありません。