comments_rss_link()

comments_rss_link()
目次

comments_rss_link()とは?

comments_rss_link() は、投稿やサイト全体のコメントRSSフィードへのリンクを生成して出力するテンプレートタグです。

WordPressは標準でコメント用のRSSフィードを提供しており、これを利用するとユーザーが「コメントの更新情報」をRSSリーダーで受け取れます。

このタグを使えば、特定の投稿のコメントフィード全体のコメントフィードへのリンクを簡単に設置できます。

RSSフィードの種類

WordPressには2種類のコメントRSSがあります。

  1. サイト全体のコメントフィード
    サイト全体のすべてのコメントをまとめたフィード。
    URL例: https://example.com/comments/feed/
  2. 特定の投稿のコメントフィード
    特定の投稿だけのコメントを配信するフィード。
    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が生成されます。

対象URL例
投稿https://example.com/投稿スラッグ/feed/
全体https://example.com/comments/feed/

内部的には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()
  • 全体フィードは別途取得
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

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

目次