
comments_rss_link()とは?
comments_rss_link() は、投稿やサイト全体のコメントRSSフィードへのリンクを生成して出力するテンプレートタグです。
WordPressは標準でコメント用のRSSフィードを提供しており、これを利用するとユーザーが「コメントの更新情報」をRSSリーダーで受け取れます。
このタグを使えば、特定の投稿のコメントフィードや全体のコメントフィードへのリンクを簡単に設置できます。
RSSフィードの種類
WordPressには2種類のコメントRSSがあります。
- サイト全体のコメントフィード
サイト全体のすべてのコメントをまとめたフィード。
URL例:https://example.com/comments/feed/ - 特定の投稿のコメントフィード
特定の投稿だけのコメントを配信するフィード。
URL例:https://example.com/sample-post/feed/
comments_rss_link() はデフォルトで投稿単位のフィードURLを生成します。
comments_rss_link()の基本的な書式
comments_rss_link( string $link_text = 'Comments RSS feed for this post.', int $post_id = null )2つのパラメータがあります。
| パラメータ | 内容 |
|---|---|
$link_text | 表示するリンクテキスト |
$post_id | 対象の投稿ID(省略すると現在の投稿) |
comments_rss_link()のもっともシンプルな使い方
ループ内で呼び出すと、現在の投稿のコメントRSSリンクが表示されます。
<?php comments_rss_link(); ?>出力例:
<a href="https://example.com/sample-post/feed/">
Comments RSS feed for this post.
</a>日本語のリンクテキストを指定する
表示テキストを変えたい場合は1つ目のパラメータで指定します。
例:
<?php comments_rss_link('この記事のコメントRSS'); ?>出力:
<a href="https://example.com/sample-post/feed/">
この記事のコメントRSS
</a>特定の投稿IDを指定する
ループ外で特定の投稿のリンクを出したい場合は2つ目のパラメータに投稿IDを渡します。
例:
<?php comments_rss_link('特定記事のコメントRSS', 42); ?>投稿IDが42の記事のコメントフィードURLを生成します。
全体のコメントフィードをリンクするには?
comments_rss_link() は単独でサイト全体のコメントフィードは扱いません。
全体のコメントRSSフィードのURLは get_bloginfo('comments_rss2_url') で取得できます。
例:
<a href="<?php bloginfo('comments_rss2_url'); ?>">サイト全体のコメントRSS</a>RSSフィードURLの仕組み
WordPressでは以下のようにコメントフィードURLが生成されます。
内部的にはfeed/パスを追加するだけなので、固定リンク設定に依存します。
comments_rss_link()の実用例
記事下に「この記事のコメントRSS」リンクを設置する場合:
<div class="comment-feed-link">
<?php comments_rss_link('この記事のコメントをRSSで購読'); ?>
</div>リンクに属性を追加する
comments_rss_link()は直接HTML属性を追加できません。
CSSクラスを付けたい場合は自分でget_post_comments_feed_link()でURLを取得し、HTMLを組む方法がおすすめです。
例:
<?php
$url = get_post_comments_feed_link();
?>
<a href="<?php echo esc_url($url); ?>" class="comment-rss-link">この記事のコメントRSS</a>get_post_comments_feed_link()について
comments_rss_link()の内部ではget_post_comments_feed_link()が呼ばれています。
この関数はコメントRSSのURLだけを取得するため、カスタマイズに便利です。
書式:
get_post_comments_feed_link( int $post_id = null )例:
<?php
echo get_post_comments_feed_link(); // 現在の投稿
echo get_post_comments_feed_link(42); // 投稿ID=42
?>comments_rss_link() vs get_post_comments_feed_link()
| 関数 | 役割 |
|---|---|
comments_rss_link() | リンクHTMLを出力 |
get_post_comments_feed_link() | URLだけを返す |
用途に応じて使い分けます。
フィルターフック
comments_rss_link()に直接フックはありませんが、get_post_comments_feed_link()内部でpost_comments_feed_linkフィルターが適用されます。
例:
add_filter('post_comments_feed_link', function($url, $post) {
return $url . '?utm_source=mycustomfeed';
}, 10, 2);これによりURLを動的に変更できます。
comments_rss_link()のカスタムHTML例
リンクをカスタムHTMLで出力したい場合:
<?php
$url = get_post_comments_feed_link();
?>
<a href="<?php echo esc_url($url); ?>" target="_blank" rel="nofollow" class="rss-link">
<span>💬 コメントRSSを購読</span>
</a>comments_rss_link()の注意点
comments_rss_link()は出力専用(echoする)- 取得だけしたい場合は
get_post_comments_feed_link() - 全体フィードは
get_bloginfo('comments_rss2_url')で対応 - 固定リンク設定によってURLが変わる場合がある
- 新しいテーマではあまり目立たないが便利な機能
comments_rss_link()の使用例まとめ
例1:シンプルなリンク
<?php comments_rss_link(); ?>例2:日本語リンクテキスト
<?php comments_rss_link('この記事のコメントRSS'); ?>例3:特定の投稿
<?php comments_rss_link('特定記事のコメントRSS', 123); ?>例4:全体のコメントフィード
<a href="<?php bloginfo('comments_rss2_url'); ?>">サイト全体のコメントRSS</a>comments_rss_link()のまとめ
comments_rss_link()のポイント
- 投稿のコメントフィードURLを簡単にリンク化
- テキスト指定で柔軟な表示
- URLだけ取得したいときは
get_post_comments_feed_link() - 全体フィードは別途取得