the_excerpt_rss()

the_excerpt_rss()
目次

the_excerpt_rss()とは?

the_excerpt_rss() は、RSSフィード(Atom, RSS2, RDFなど)で投稿本文の抜粋を表示するための関数です。
通常のサイト表示で使用する the_excerpt() のRSS版と考えると分かりやすいです。

  • 投稿の全文をRSSで出すのではなく、「要約(excerpt)」を表示したいときに使います。
  • 出力形式はテキストベースで、HTMLタグは基本的に除去されます。

the_excerpt_rss()が使用される場面

WordPressのRSSフィードテンプレート(feed-rss2.php など)で使用されます。
自作テンプレートで手動使用する場合もありますが、多くは自動的に呼び出されます。

例:feed-rss2.php

<description><![CDATA[
  <?php the_excerpt_rss(); ?>
]]></description>

※CDATAで囲うことで、RSSリーダーでテキストが崩れずに表示されます。

the_excerpt()との違い

項目the_excerpt()the_excerpt_rss()
用途サイト表示用の抜粋RSSフィード用の抜粋
出力形式HTML除去、簡易テキストHTML除去、RSS向けの整形
自動整形ありあり(簡易)
フィルターexcerpt_length, excerpt_morethe_excerpt_rss

抜粋の内容について

the_excerpt_rss() で出力される抜粋の中身は、基本的に以下のどちらかになります:

  1. 投稿の「抜粋欄」に手動で入力された内容
  2. 本文から自動で生成される要約(デフォルトは55語)

出力内容の特徴

  • HTMLタグ:全て削除されます(安全なフィード配信のため)
  • ショートコード:除去または無効
  • 改行:基本的に \n 形式で整形
  • フィルター:the_excerpt_rss が適用される(カスタマイズ可)

the_excerpt_rss()の実際の出力例

投稿本文:

<p>これはWordPressのRSSフィードテストです。抜粋を使ってみましょう。</p>

RSSフィード上の出力(the_excerpt_rss()):

これはWordPressのRSSフィードテストです。抜粋を使ってみましょう。

※HTMLタグは除外され、テキストのみが出力されます。

the_excerpt_rss()のカスタマイズ例

フィルター the_excerpt_rss

このフィルターを使えば、出力される内容を加工することが可能です。

例:RSSの抜粋末尾にサイト名を追記
add_filter('the_excerpt_rss', function($excerpt) {
  return $excerpt . '(配信元:' . get_bloginfo('name') . ')';
});

フィルター excerpt_length

抜粋の文字数(単語数)を変更したい場合:

add_filter('excerpt_length', function($length) {
  return 100; // 100単語に変更
});

フィルター excerpt_more

抜粋の末尾に表示される [...] を変更:

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

※この変更は the_excerpt()the_excerpt_rss() の両方に影響します。

get_the_excerpt() との組み合わせ

より柔軟な制御が必要なときは get_the_excerpt()apply_filters('the_excerpt_rss', ...) を組み合わせて使うこともできます。

$excerpt = apply_filters('the_excerpt_rss', get_the_excerpt());
echo $excerpt;

これにより、フィルターを通した上で出力することが可能です。

the_content_rss()との違い

the_content_rss() は「投稿本文(全文)」をRSSフィードに出力するための関数です。
それに対し、the_excerpt_rss() は「要約」のみを表示します。

関数名出力内容使い分け
the_content_rss()本文全文(整形付き)全文を配信したいとき
the_excerpt_rss()要約のみ(簡易整形)概要だけを配信したいとき

the_excerpt_rss()の注意点とトラブル回避

注意点説明
HTMLが表示されないRSSでは基本的にタグが除去される
画像や動画が出ない抜粋にはメディア情報は含まれない
抜粋が空になる「抜粋欄」に何も入力されておらず、本文も短い場合など

カスタムRSSでの活用例

自作RSSフィードを作る場合、全文ではなく抜粋を使って軽量化したいケースで役立ちます。

<item>
  <title><?php the_title_rss(); ?></title>
  <link><?php the_permalink_rss(); ?></link>
  <description><![CDATA[<?php the_excerpt_rss(); ?>]]></description>
</item>

the_excerpt_rss()のまとめ

項目内容
関数名the_excerpt_rss()
目的RSSフィードに要約(抜粋)を出力
出力形式プレーンテキスト(HTML除去)
自動生成抜粋欄が空の場合は本文から55語を抽出
カスタマイズthe_excerpt_rss フィルターで可能
使用場所feed-rss2.php などのRSSテンプレート

the_excerpt_rss() は表にはあまり出てこない関数ですが、RSSフィードをコンパクトかつ適切に配信するために欠かせない存在です。
特にRSSリーダーやメールマガジン配信、他サービスとの連携などにおいて、「全文ではなく要約だけを配信したい」といったニーズに対応できます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

初めてホームページを作成したのは1996年。
2000年よりフリーランスで主に中小企業、学校、各種公的団体、個人事業主のWordPressを活用したホームページ制作を行っています。WordPressテーマはそれぞれのクライアントに合わせて作成しています。
WordPressを活用したサイト運営のための情報発信をしていきます。

目次