bloginfo_rss()
は、RSS フィード用にサイト情報を出力するテンプレートタグです。bloginfo()
と似ていますが、RSS に適した形式(HTMLエスケープ処理された状態)で出力される点が異なります。
通常、RSSテンプレート(feed-rss2.php
など)内で使用され、誤動作のないフィード配信に重要な役割を果たします。
目次
機能の説明
どんなテンプレートタグか?
- RSS 用にエスケープ処理されたサイト情報(タイトル、URL、説明など)を出力する。
bloginfo()
の RSS 対応版。特殊文字(例:&
)などを正しく変換して出力。
どういう時に使うか?
- RSS テンプレート(
wp-includes/feed-*
)でサイト情報を出力する時。 - 通常の
bloginfo()
を使用するとフィードが壊れる可能性があるため、RSS 対応としてbloginfo_rss()
を使用する。
シンプルなコード例
<channel>
<title><?php bloginfo_rss( 'name' ); ?></title>
<link><?php bloginfo_rss( 'url' ); ?></link>
<description><?php bloginfo_rss( 'description' ); ?></description>
<language><?php bloginfo_rss( 'language' ); ?></language>
</channel>
使い方の説明
bloginfo_rss( string $show );
$show
の主な引数一覧
引数 | 内容 |
---|---|
'name' | サイトのタイトル |
'description' | サイトのキャッチフレーズ |
'url' | サイトの URL |
'language' | サイトの言語コード(例: ja ) |
'rss2_url' | RSS2 フィードの URL |
'atom_url' | Atom フィードの URL |
'rdf_url' | RDF フィードの URL |
'rss_url' | RSS 0.92 フィードの URL |
※ bloginfo()
の $show
引数とほぼ同じですが、出力形式が違う(HTMLエスケープされる)
一緒に使うことが多い関連タグ
the_title_rss()
RSS用に投稿タイトルをエスケープして出力。
<title><?php the_title_rss(); ?></title>
the_content_feed()
RSS用に本文を出力。
<description><![CDATA[<?php the_content_feed(); ?>]]></description>
get_bloginfo_rss()
値を取得したい場合(出力しない):
$site_name = get_bloginfo_rss( 'name' );
追加情報で取得したい場合
RSS フィード内では get_bloginfo_rss()
を使用することで、値として取得できます。例えば、RSSヘッダー内で条件処理したい場合に使えます。
<?php
if ( get_bloginfo_rss( 'language' ) === 'ja' ) {
echo '<language>ja</language>';
}
?>
このテンプレートタグを利用してのカスタマイズ
カスタムRSSテンプレートでの利用例:
feed-rss2.php
に独自情報を追加:
<generator><?php bloginfo_rss( 'version' ); ?></generator>
<managingEditor><?php bloginfo_rss( 'admin_email' ); ?></managingEditor>
想定されるトラブル
通常の bloginfo()
をRSS内で使うとフィードが壊れる
解決方法
RSS出力では bloginfo_rss()
を使うことで HTMLエスケープが自動で行われ、XML構造を壊さない。
Q&A
まとめ
bloginfo_rss()
は RSS フィード内で安全にサイト情報を出力するためのテンプレートタグ。- HTMLエスケープ済みの出力により、XML構造を壊さずにRSSを構築できる。
- フィード系テンプレートで使用され、
the_title_rss()
やthe_content_feed()
と組み合わせて使われることが多い。
コメント