WordPressで抜粋の文字数や文末文字を変更する方法

今まで「抜粋」を使用してこなかったのですが、必要な場面に出くわしたので調べました。
抜粋の表示文字数の変更と文末の […] を変更したりします。

目次

  • WordPressの抜粋って?
  • 抜粋を表示させる
  • 文字数を指定する
  • 文末の[…]を変更する
  • 自動で挿入されるpタグを消す

Advertising

WordPressの抜粋って?

投稿画面の「抜粋」欄に入力した文章か、抜粋欄に入力がなければ本文の最初の110文字が表示されます。
抜粋欄はデフォルトでは投稿ページに表示されていないはずなので、使用したい時は「表示オプション」から「抜粋」にチェックを入れて表示させます。

抜粋を使用するためには、WordPressインストール時にデフォルトで入っているプラグイン「WP Multibyte Patch」を有効にしておく必要があります。
プラグインを有効にする理由は下記の引用のとおりです。

(注) 日本語のように語句の間を半角スペースで区切らない言語では「55単語」を判定できないため、抜粋できずに本文のほとんどが出力されてしまうことがあります。

WordPress 日本語版では、この問題を含むマルチバイト関連の問題に対処するために WP Multibyte Patch プラグインを同梱しています。このプラグインを使用すると、110文字まで(設定により変更可)を抜粋文として出力できます。

今回は抜粋欄を使用せず、本文から抜き出す形の抜粋を使用し、表示の方法をカスタマイズするお話しをしていきます。

抜粋を表示させる

抜粋を表示したい場所に
< ?php the_excerpt(); ?>
と記述します。これで抜粋が表示されます。
表示の内容は、「本文の最初の110文字+ […]」がpタグで囲まれている状態です。

ですが、これでは使い勝手が悪いのでカスタマイズしていきます。

文字数を指定する

今回は110文字では少し多かったので、80文字に変更します。
下記のコードをfunctions.phpに記述します。

function custom_excerpt_length( $length ) {
     return 80; 
}       
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );

2行目のreturnの後に指定したい文字数を入れます。

文末の[…]を変更する

[…]だとおかしい気がするので、表記を変えます。今回は「…」となるようにします。

function new_excerpt_more($more) {
        return ' ... ';
}
add_filter('excerpt_more', 'new_excerpt_more');

2行目のreturn ‘ … ‘の’ ‘の中を書き換えます。

自動で挿入されるpタグを消す

抜粋のスタイリングにclassをつけている場合など、自動挿入のpタグが邪魔なことがあります。というか、邪魔でした。
そこで、この邪魔なpタグを削除する方法を探したところ、2つ見つかりました。

pタグ削除方法1

get_the_excerpt()を使う。

< ?php the_excerpt(); ?>ではなく、
< ?php echo get_the_excerpt(); ?>
と記述することでpタグの自動挿入を回避します。

pタグ削除方法2

functions.phpに

remove_filter('the_excerpt', 'wpautop');

を加える。

以上2つの方法でした。
WordPress Codexの「テンプレートタグ/the excerpt」のページに

抜粋を直接表示するために使われますが、get_the_excerpt() から返された文字列に開始と終了の

タグを追加します。

とあったので、< ?php echo get_the_excerpt(); ?>と記述した方が素直かなと思い方法1を採用しました。

参考サイト

テンプレートタグ/the excerpt – WordPress Codex 日本語版
テンプレートタグ/get the excerpt – WordPress Codex 日本語版

Author

すずき のりえ
@planbworks

Webデザイナー / グラフィックデザイナー / エイチレフ合同会社 業務執行社員
コーポレートサイト・リクルーティングサイト、会社案内・入社案内がメインです。最近では医療・福祉系のお客様が多いです。
2015年10月より母校で非常勤講師(DTP)。2017年3月よりお茶のお稽古に通っています(裏千家)。

関連記事