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

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

目次

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

WordPressの抜粋って?

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

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

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

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

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

抜粋を表示させる

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

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

文字数を指定する

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

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

文末の[…]を変更する

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

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に

を加える。

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

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

タグを追加します。

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

参考サイト

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

関連記事

コメント