WordPress 抜粋の表示方法

WordPress で投稿の抜粋を取得して表示する方法を紹介します。
例えば、投稿一覧で投稿の冒頭文を表示したいときなどに便利な方法です。

  1. 抜粋とは?
  2. 抜粋の取得と表示方法
  3. 抜粋を使った条件分岐の方法
  4. 固定ページで抜粋を表示する方法
  5. 抜粋の出力結果から P タグを除外する方法
  6. 抜粋を文字数制限をかけて表示する方法

抜粋とは?

WordPress の抜粋は、投稿にオプションでつけられる投稿の概要表示機能のことです。
投稿では最初から有効化されている機能ですが、固定ページでは機能を有効化する作業が必要です。

抜粋の取得と表示方法

抜粋の表示には the_excerpt() を使用します。
次のコードは、抜粋の表示と取得の関数です。

<?php the_excerpt(); ?>(表示関数)
<?php get_the_excerpt(); ?>(取得関数)

抜粋を使った条件分岐の方法

抜粋で条件分岐を使用する場合は has_excerpt を使用します。
次のコードは、投稿に抜粋があった場合に抜粋を表示する方法です。

<?php
if (has_excerpt()) {
the_excerpt();
} else {
echo '抜粋はありません';
}
?>

条件分岐のトリガーに the_excerpt を使いがちですが、the_excerpt は抜粋の入力がない場合に本文の一部を引用して表示するため、抜粋の条件分岐には has_excerpt を使用しましょう。

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

固定ページで抜粋を表示する場合は、抜粋機能を有効化する必要があります。
抜粋機能を有効化する詳しい方法はWordPress 固定ページで抜粋を表示する方法をご覧ください。

抜粋の出力結果から P タグを除外する方法

抜粋を the_excerpt で出力すると p タグで囲われて出力されます。
pタグを除外する場合は get_the_excerpt を使用します。

<?php echo get_the_excerpt(); ?>

抜粋を文字数制限をかけて表示する方法

抜粋を文字数制限をかけて表示する場合は、条件分岐と strip_tags を使用します。
抜粋を文字数制限をかけて表示するには、次のコードをループ内に追加します。

<?php // 抜粋を文字数制限をかけて表示
$excerpt_num = 72; // 制限をかけるバイト数を指定 全角=2バイト 半角=1バイト
$post_excerpt = strip_tags(get_the_excerpt()); // 抜粋を取得
if(mb_strlen($post_excerpt)>$excerpt_num ) { // 抜粋が指定したバイト数より多い時に TRUE
$content = mb_substr($post_excerpt,0,$excerpt_num); // 同じバイト数を指定
echo str_replace(array("\r", "\n"), '', $content).・・・; // 改行の削除、末尾に「...」を追加
} else {
echo str_replace(array("\r", "\n"), '', $post_excerpt); // 改行の削除
}
?>

最初に制限をかけるバイト数を指定しますが、全角と半角でバイト数が違うので注意が必要です。
※全角=2バイト、半角=1バイト

まとめ

WordPress で抜粋を取得して表示する方法を紹介しました。