
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()
- 全体フィードは別途取得