[WordPress] RSSフィードのdescriptionの文字数を調整する方法

2 min read

RSS で配信する description は全文配信したくない方もいらっしゃるかと思います。

そもそも日本語だと抜粋にしても不具合でうまく自動抜粋できなかったりするようですが…

抜粋の不具合

単語間のスペース区切りで文字数をカウントしているため、本文が日本語の場合に自動抜粋がうまく短縮されません(手動抜粋、ティーザーには影響なし)。

今回はコードを追加して任意の文字数で抜粋できるようにしたいと思います。

追加するコード

フィードでの各投稿の表示はフックできるようなので、以下のコードをfunctions.phpに追加してみてください。
function adjust_text_for_feeds($content) {
  return wp_trim_words($content, 100, '…');
}

add_filter('the_excerpt_rss', 'adjust_text_for_feeds');
add_filter('the_content_feed', 'adjust_text_for_feeds');

簡単な解説

WordPressの独自関数:wp_trim_wordsで投稿内容をトリムします。 ちなみにWordPress 3.3以上でないと、この関数は実装されていないので注意。PHPで文字列省略する方法は「[WordPress] 文字列を簡単に省略する方法」に記載しています。

第二引数: 抜粋する文字数を指定
第三引数: 省略した際に付与したい文字列を指定可。(デフォルト値: )