the_excerpt : WordPress で抜粋を使いこなす方法
こんにちは、このブログ運営の裏方です。
みなさん、サイトに抜粋文を使いたい時ってありませんか?
私は、「ブログの記事一覧に、本文の一部抜粋を掲載したい!」と思い今回調べてみました。
いくつかハマるポイントがあり、難しかったのでご紹介します。
最終的には、抜粋文を表示し、その文字数や文末をコントロールする手法をご紹介します。
1. 抜粋文を表示する方法
1.1. 抜粋文を表示する関数
<?php the_excerpt(); ?>
いくつかのサイトを参照したところ、上記のコードを任意の場所に埋め込むことで、抜粋が実現されると説明されていました。しかしながら、「これで万事解決!」という人は、ほとんどいないと思います。なぜなら、WordPress はデフォルトで日本語の文字数をカウントすることが出来ないからです。
このままでは、抜粋するはずの下の文章をすべて表示するというような事が起こると思います。
1.2. 日本語をカウントする為のプラグイン
ワードプレスが日本語を正常にカウントできるようにするために、プラグイン
WP Multibyte Patch
を導入します。多くの方は、これで機能すると思います。「これで一安心」と思いきや、私はこれでも動きませんでした。
1.3. 固定ページで抜粋文を利用したい場合
固定ページで抜粋文を利用したい場合は、functions.php に以下のコードを書き足す必要があります。
add_post_type_support('page', 'excerpt');
1.4. WordPress の言語設定を変更する
上記の設定をしても機能しない場合は、WordPress の言語設定を日本語に変更してください。私は、English を選択していた為に、原因が分からず苦労しました。英語でカッコつけていたかったのに…..
2. 抜粋文の文字数・文末を変更する
2.1. デフォルトの設定
<?php the_excerpt(); ?>
この関数の元々の設定では、抜粋される文字数は110字です。文末は、[…] で表示されます。
2.2. 文字数・文末の変更方法
抜粋文の文字数や文末を変更するコードは、functions.php に記述を追加します。実際のコードは以下の通りです。
//引用の字数と文末の指定など add_post_type_support('page', 'excerpt'); function original_excerpt_more(){ return '文末'; } add_filter( 'excerpt_more', 'original_excerpt_more'); function original_excerpt_length(){ return 110; } add_filter( 'excerpt_mblength', 'original_excerpt_length');
‘文末’ の ‘ ‘ の間に入る文字を変更して、文末を設定することが出来ます。
また、110 の部分を変更することで、抜粋される字数を変更することが出来ます。
3. より深い理解の為に
<?php the_excerpt(); ?>
この関数は、どんなことをしているのか気になる方も多いと思います。
私も勉強の為に、同じ機能を持つコードを別の方法で書いてみましたので掲載しておきます。
<p><?php echo get_the_excerpt(); ?></p>
get_the_excerpt() は、抜粋したい部分を取得するだけの関数です!
それでは、ご覧いただきありがとうございました!
by teru

にほんブログ村