スポンサーリンク

WordPressのRSSフィードにビュー数を表示する方法

WordPress

WordPressのRSSフィードを使用してコンテンツを配信している場合、各記事のビュー数を表示することで、ユーザーに人気の記事を示すことが可能です。
この記事では、WordPressのRSSフィードにビュー数を表示する方法をご紹介します。

 

1. ビュー数を表示するための準備

ビュー数をRSSフィードに表示するには、まず各記事のビュー数をカウントして保存する必要があります。
これは特定のプラグインを使うか、自身でカスタムコードを書いて実装します。

 

2. プラグインを使用する方法: WP-PostViews

一つの方法として、”WP-PostViews” のようなプラグインを使用し、プラグインが管理するビューカウントの値を取得することが可能です。そのためのコードを以下に示します

function add_views_to_rss($content) {
   global $post;
   if (function_exists('the_views')) { 
       $views = the_views(false);
       $content .= 'Views: ' . $views;
   }
   return $content;
}
add_filter('the_excerpt_rss', 'add_views_to_rss');
add_filter('the_content_feed', 'add_views_to_rss');

このコードは、”WP-PostViews”プラグインが有効化されている場合、ビューカウントの値を取得してRSSフィードに追加します。

 

3. プラグインを使用せずに実装する方法

一方、プラグインを使用せずにビューカウントを実装する方法もあります。そのためのコードは以下の通りです

function set_post_views($postID) {
    $count_key = 'post_views_count';
    $count = get_post_meta($postID, $count_key, true);
    if($count==''){
        $count = 0;
        delete_post_meta($postID, $count_key);
        add_post_meta($postID, $count_key, '0');
    }else{
        $count++;
        update_post_meta($postID, $count_key, $count);
    }
}

function track_post_views ($post_id) {
    if ( !is_single() ) return;
    if ( empty ( $post_id) ) {
        global $post;
        $post_id = $post->ID;    
    }
    set_post_views($post_id);
}
add_action( 'wp_head', 'track_post_views');

function add_views_to_rss($content) {
   global $post;
   $count_key = 'post_views_count';
   $views = get_post_meta($post->ID, $count_key, true);
   if($views==''){
       $views = "0";
   }
   $content .= 'Views: ' . $views;
   return $content;
}
add_filter('the_excerpt_rss', 'add_views_to_rss');
add_filter('the_content_feed', 'add_views_to_rss');

このコードは、各投稿のビュー数をカウントし、それをメタデータとして保存するための関数と、それをRSSフィードに表示するための関数です。

  1. set_post_views($postID): この関数は投稿のビュー数をカウントし、その値を投稿のメタデータとして保存します。具体的には、引数として与えられた $postID の投稿のメタデータを取得し、その値を更新します。もしまだその投稿に対するビュー数のメタデータが存在しない場合は、新たに作成します。
  2. track_post_views($post_id): この関数は単一の投稿が表示された際にビュー数をカウントアップします。関数内で、単一の投稿ページ(is_single())が表示されている場合のみ set_post_views($post_id) を呼び出します。これにより、投稿リストページや検索結果ページなどで投稿の一部が表示された場合はカウントアップしないようになっています。
  3. add_views_to_rss($content): この関数はRSSフィードにビュー数を追加する役割を果たします。具体的には、各投稿のメタデータからビュー数を取得し、RSSフィードにその情報を追加します。

そして、以下の2つのフィルターフックが使用されています。

  1. add_filter('the_excerpt_rss', 'add_views_to_rss');: この行は、RSSフィードの抜粋部分にビュー数を追加します。the_excerpt_rssフィルターは、RSSフィードに含まれる投稿の抜粋部分にフィルターを適用します。
  2. add_filter('the_content_feed', 'add_views_to_rss');: この行は、RSSフィードの内容部分にビュー数を追加します。the_content_feedフィルターは、RSSフィードに含まれる投稿の内容部分にフィルターを適用します。

 

注意点

これらのコードはテーマの functions.php ファイルに追加する必要があります。テーマを更新すると functions.php ファイルの内容が上書きされる可能性があるため、子テーマを使用しているか、カスタムコードを追加するための専用のプラグイン(Code Snippetsなど)を使用することをお勧めします。

 

まとめ

WordPressのRSSフィードにビュー数を表示することで、どの記事が読まれているのか、読者やあなた自身にとって一目瞭然になります。
プラグインを使用する方法と、自分でコードを書く方法、2つの方法を試してみてください。あなたのサイトに最も適した方法を見つけましょう。

コメント

タイトルとURLをコピーしました