記事を抜粋表示する関数the_excerpt()の使い方とカスタマイズ方法【WordPress】

最終更新日:

公開日:2024-11-28

ページ内に広告が含まれています。
記事を抜粋表示する関数the_excerpt()の使い方とカスタマイズ方法【WordPress】

WordPressには抜粋表示するWordpress関数(テンプレートタグ)がいくつか用意されています。
今回はその中でも使用されている比率が高いと思われるthe_excerpt()について解説していきます。

the_excerpt関数について

the_excerpt()は、記事を抜粋表示する関数となります。
WordPressの記事編集画面内に以下画像のような「抜粋」というフィールドがあり、その中に入力されているかどうかで挙動が変わります

抜粋フィールド

「抜粋」フィールドに入力されている場合

入力されている内容がそのまま出力されます。

「抜粋」フィールドに入力されていない場合

本文の冒頭から指定文字数(デフォルトでは日本語版は110文字、英語版は55文字)が抜粋表示されます。
指定文字数を超えると末尾に「[…]」が表示されます。
また、「moreタグ」が本文内にある場合は、そこまでの内容を取得します。

the_excerpt関数の使い方

the_excerpt()ループ内でのみ使用可能な関数となり、抜粋テキストを取得・出力します。
使用方法は以下のようになります。

<?php the_excerpt(); ?>

the_excerpt()は文章に自動的にHTMLのpタグで囲まれ、改行部分にはbrタグが挿入されます。

get_the_excerpt関数の使い方

get_the_excerpt()抜粋テキストを取得する事が出来る関数です。取得のみとなりますので、変数に格納したり出力する必要があります。使用方法は以下のようになります。

<?php
    $excerpt_text = get_the_excerpt();
    echo $excerpt_text;
?>

get_the_excerpt()はループ内でもループ外でも使用する事が可能ですが、ループ外で使用する場合は引数に記事IDの指定が必要となります。

<?php
    // ループ外で使用する場合は引数に記事IDの指定が必要
    $excerpt_text = get_the_excerpt(50);
    echo $excerpt_text;
?>

また、get_the_excerpt()the_excerpt()とは異なり、自動的にpタグで囲まれたり、brタグの挿入はされません。
表示される文字数や、末尾の記号などのその他の仕様に関してはthe_excerpt()と同じとなります。

抜粋する文字数が合わない場合

日本語で抜粋する文字数が合わない場合は、WordpressのプラグインであるWP Multibyte Patchを使用してみてください。このプラグインが無い場合、文字数が正しくカウントされない場合があります。

抜粋する文字数の変更方法

抜粋する文字数はデフォルトでは110文字となっています。
文字数を変更するにはfunctions.phpに以下を記述する事で変更可能となります。

// 抜粋する文字数を110文字から80文字に変更
add_filter('excerpt_length', function($length){
    return 200;
}, 999);

上記例では、抜粋する文字数を110文字から80文字に変更しています。

末尾の記号の変更方法

抜粋する文字数を超えている場合は自動的に「[…]」が表示されます。
この記号を変更する場合はfunctions.phpに以下を記述する事で変更可能となります。

// 末尾の記号を「…」に変更する
add_filter('excerpt_more', function($more){
    return '…';
}, 999);

上記例で末尾の記号を「」に変更しています。
他の記号やテキストに変更したい場合はこの部分を変更してください。

自動で挿入されるHTMLタグを除去する方法

先ほど解説したように、the_excerpt()では自動的にpタグで囲まれ、改行はbrタグが挿入されます。
このHTMLタグを挿入しないようにするには、functions.phpに以下を記述します。

// 抜粋表示の自動整形を無効化
remove_filter('the_excerpt','wpautop');

固定ページやカスタム投稿で抜粋フィールドを有効にする方法

デフォルトでは固定ページやカスタム投稿には「抜粋」フィールドがありません。
固定ページやカスタム投稿でも「抜粋」フィールドを使用するにはfunctions.phpに以下を記述します。

// 固定ページで抜粋フィールドを有効化
add_post_type_support('page','excerpt');

// カスタム投稿「news」で抜粋フィールドを有効化
add_post_type_support('news','excerpt');

その他の抜粋・省略表示方法

その他の方法で抜粋・省略表示をするには以下の方法があります。

さいごに

いかがでしたでしょうか。
今回は、記事を抜粋表示する関数the_excerpt()の使い方とカスタマイズ方法を解説しました。
抜粋表示は投稿の一覧ページなどでよく使用しますので、ぜひ使ってみてください。

おすすめ記事

当ブログ運営者 ヒデ

北海道札幌市在住のフリーランスでWeb制作を行っているヒデです。Webコーディング(HTML・CSS・JSなど)やWordpressのカスタマイズ等のテクニック、困った時に確認できる分かりやすい解説を目標にして情報を発信していければと思っています。プロフィールはこちら

当サイトに関するご意見・ご感想・ご要望または仕事のご依頼は以下のフォームよりお願い致します。

お問い合わせ お仕事のご依頼
PAGE TOP