WordPress 固定ページで抜粋を表示する方法

WordPress の固定ページで抜粋を表示する方法を紹介します。
投稿と違い固定ページは最初から抜粋機能が使用できないため function.php にコードを追加して機能を有効化する必要があります。

  1. 抜粋の有効化
  2. 抜粋の表示
  3. 抜粋の最後の文字列を変更する

抜粋の有効化

固定ページで抜粋機能を有効化するためには、特定の機能を有効化できる関数 add_post_type_support() を使用します。
例えば、固定ページで抜粋を有効化する場合は次のコードを functions.php に追加します。

/*【出力カスタマイズ】固定ページで抜粋の機能を有効化 */
add_post_type_support( 'page', 'excerpt' );

コードを追加後、固定ページの編集画面に抜粋が表示されていれば問題ありません。

抜粋の表示

有効化した抜粋の表示には the_excerpt を使用します。
このテンプレートタグは投稿の本文の冒頭文110文字を抜粋して表示しますが、抜粋に入力があればその内容を優先して表示します。
表示する文字列が110文字以上なら、文末に […](角括弧+三点リーダー)がついた状態で表示されます。
このテンプレートタグはループ内で使用します。
抜粋の表示にはテンプレートファイルに次のコードを追加してください。

<?php the_excerpt(); ?>

文字数を制限した抜粋の出力には注意が必要です。
以下、WordPress Codex 日本語版より引用。

(注) 日本語のように語句の間を半角スペースで区切らない言語では「55単語」を判定できないため、抜粋できずに本文のほとんどが出力されてしまうことがあります。
WordPress 日本語版では、この問題を含むマルチバイト関連の問題に対処するために WP Multibyte Patch プラグインを同梱しています。このプラグインを使用すると、110文字まで(設定により変更可)を抜粋文として出力できます。

WordPress Codex 日本語版テンプレートタグ/the excerptから引用

設定を誤ると意図した文字数で表示ができないので注意してください。

抜粋の最後の文字列を変更する

抜粋の最後の文字列はデフォルトで '[…]' に設定されていますが、この文字列を任意の文字列に変更することができます。
文字列を変更する場合は functions.php に次のコードを追加します。

/*【出力カスタマイズ】抜粋の最後の文字列を変更する */
function new_excerpt_more($more) {
return '...';
}
add_filter('excerpt_more', 'new_excerpt_more');

コード内の「…」の部分を任意の文字列に変更して利用してください。

まとめ

WordPress の固定ページで抜粋を表示する方法を紹介しました。