RSS/Atomフィード カスタマイズ

RSSフィードのカスタマイズ

標準で出力されるフィード

WordPressの各種ページで出力されるフィードは以下になると思います。

  1. 投稿:投稿のフィード @全てのページ
  2. サイトのコメント:コメントのフィード @全てのページ
  3. 各投稿のコメント:投稿ページのコメントのフィード @シングルページ
  4. カテゴリー:カテゴリーごとのフィード @カテゴリーアーカイブページ
  5. タグ:タグごとのフィード @タグアーカイブページ
  6. 投稿者(作成者):作成者ごとのフィード @作成者アーカイブページ
  7. 検索結果:検索結果のフィード @検索結果ページ

管理画面で可能な設定

管理画面「設定」→「表示設定」で以下の設定を行うことができます。

  • RSS/Atom フィードで表示する最新の投稿数:RSS登録した際に最新から何件表示するか
  • RSS/Atom フィードでの各投稿の表示:フィードに、「全文」を表示するか「抜粋のみ」を表示するか

head内のフィードURLを消す方法

こちらは、フィード配信を停止するのではなく、head内にurlを出力されるのを停止します。おもにブラウザに自動的に読み取ってもらうための機能です。

remove_action( 'wp_head', 'feed_links', 2);        // 1~2を消去
remove_action( 'wp_head', 'feed_links_extra', 3);  // 3~7を消去

フィード停止方法

フィード全体を停止します。

function digwp_disable_feed() {
    wp_die( __( '<h1>Feed not available, please visit our <a href="' . get_bloginfo('url') . '">Home Page</a>!</h1>'));
}
add_action( 'do_feed',      'digwp_disable_feed', 1);
add_action( 'do_feed_rdf',  'digwp_disable_feed', 1);
add_action( 'do_feed_rss',  'digwp_disable_feed', 1);
add_action( 'do_feed_rss2', 'digwp_disable_feed', 1);
add_action( 'do_feed_atom', 'digwp_disable_feed', 1);

以下のプラグインでもフィード配信を停止できます。
Disable Feeds

特定のタグ(カテゴリー)に属する投稿はフィード登録しない

tag__not_in内に、タグIDもしくはタグ名を指定。複数ある場合は、カンマ区切りで追加。(category__not_in内にカテゴリーIDもしくはカテゴリー名を指定)

取り消し線の理由 => tag__not_in, category__not_inでは、IDのみでスラッグでは指定できませんでした。
// 1102のタグIDに属する投稿はフィード登録されない。
function exclude_tag_rss( $query) {
    if ($query->is_feed) {
        $query->set( 'tag__not_in', array( 1102));
    }
    return $query;
}
add_filter( 'pre_get_posts', 'exclude_tag_rss');

抜粋の文字数・文字列

日本語のWordPressにインストールされているプラグイン「WP Multibyte Patch」がこの設定を上書きします。

「WP Multibyte Patch」を有効化している場合

設定に引きずられてしまいます。デフォルトでは文字数は110字、文字列は[...]。カスタマイズするには設定ファイルを以下のように移動・リネームして設定を行います。
オリジナル:/wp-content/plugins/wp-multibyte-patch/wpmp-config-sample-ja.php
移動・リネーム後:/wp-content/wpmp-config.php

$wpmp_conf['excerpt_mblength'] = 200;  // 抜粋の文字数
$wpmp_conf['excerpt_more'] = ' ...';   // 抜粋を表す文字列

「WP Multibyte Patch」を有効化していない場合

デフォルトでは文字数は55字、文字列は[...]になります。functions.php(子テーマ)に追加して設定を行ってください。
また、「WP Multibyte Patch」の設定を上書くこともできます。

// 抜粋文字数変更
function my_excerpt_length( $length ) {
    return 200;
}
add_filter( 'excerpt_length', 'my_excerpt_length', 999 );

// 抜粋を文字列を変更 [...]
function my_excerpt_more( $more ) {    
    return ' ...';
}
add_filter( 'excerpt_more', 'my_excerpt_more' );
オリジナル /wp-includes/formatting.php
wp_trim_excerpt

フィードの投稿タイトル カスタマイズ

例として、フィードに表示される投稿タイトルにカテゴリー名を追加します。
区切りは' | 'で、カテゴリーが複数ある場合のカテゴリー間とカテゴリーと投稿タイトルの間に挟まれるようにしています。

function cat_added_title( $title) {
    $sep = ' | ';                                // 区切り文字
    $category_array = array_map( create_function( '$category', 'return $category->name;'), get_the_category());
    $categories = join( $sep, $category_array);  // カテゴリーを$sepで結合
    $title = $categories . $sep . $title;        // 結合したカテゴリーとタイトルを$sepで結合
    return $title;
}
add_filter( 'the_title_rss', 'cat_added_title');

フィード内にアイキャッチ(サムネイル)を表示

function rss_post_thumbnail( $content) {
    global $post;
    if (has_post_thumbnail( $post->ID)) {
        $content = '<p>' . get_the_post_thumbnail($post->ID) .'</p>' . $content;
    }
    return $content;
}
add_filter( 'the_excerpt_rss',  'rss_post_thumbnail');
add_filter( 'the_content_feed', 'rss_post_thumbnail');

フィードのテンプレートを変更する

テンプレートファイルは、/wp-includes下にあります。

  • feed-atom.php
  • feed-atom-comments.php
  • feed-rdf.php
  • feed-rss.php
  • feed-rss2.php
  • feed-rss2-comments.php

テンプレート変更プラグイン「Feed Template Customize」

ダウンロード
インストールして有効化
/wp-includes下にあるテンプレートファイルを現在使用中のテーマディレクトリにコピー

// author(投稿者)を非表示 -> the_authorをコメントアウト
<dc:creator><?php //the_author() ?></dc:creator>
// コメント数を非表示 -> get_comments_number()をコメントアウト
<slash:comments><?php //echo get_comments_number(); ?></slash:comments>

フックして各種情報を削除

プラグインを使用したり、テンプレートを編集したりせずに情報を削除することも可能です。

// ユーザ名を非表示
add_filter( 'the_author', 'remove_feed_author');
function remove_feed_author( $name) {
    if( is_feed() ) {
        return false;
    }
    return $name;
}

フィードで出力されるXMLのローデータを確認する簡単な方法

http://[siteurl]/feedにアクセスし、ブラウザのソースをみる機能を使用して確認することができます。

  • このエントリーをはてなブックマークに追加

関連記事

サイトのキャプチャをショートコードで生成してくれる「Browser Shots」

外部のサイトを紹介する際にそのサイトのキャプチャが添えられているとイメージがつかみやすくなりクリックのモチベーションが上がるような気がします。 今回は、ショートコード一行でサイトのスクリーンショット

「最近のコメント」ウィジェットをカスタマイズ

「最近のコメント」ウィジェットは、サイトに投稿されたコメントを新しい日付順に表示してくれます。件数も「ウィジェット」ページで設定できます。(管理画面の「外観」→「ウィジェット」) (削除

Twenty Twelve 投稿者情報を表示/非表示に

TwentyTwelveでは、投稿ページごとに投稿者の情報を掲載することができます。他のテーマでも同様だと思います。こんな感じです。ここでは、掲載と削除の方法について記載します。 表示方法 「

Twenty Twelve サイトタイトルをテキストから画像に置き換え

ページトップに表示されるサイトタイトルをデフォルトのテキストから画像に変更します。 あらかじめ、管理画面のメディアライブラリから画像をアップロードしているもしくは別の場所に保存しているそのファイルの

翻訳ファイルの子テーマ化

子テーマでfunctions.phpなどを変更していくと翻訳すべき項目にぶつかっていくと思います。例を挙げると_()の部分で、Wordpressが翻訳を行ってくれる部分です。 個人的には、日本語

Tumblrの投稿をウィジェットに表示できる「Tumblr Widget」

このブログでは、サイドバーウィジェットに「Tumblr」に投稿したブックマーク一覧を表示させています。プラグインは「Tumblr Widget」を使用しています。ダウンロード 「This plugi

テーマ 「Responsive」 カスタマイズ

デモ | ダウンロード 目次 投稿日 非表示 作成者 非表示 "Responsive Theme powered by WordPress" 削除 投稿日 非表示 オリ

Twenty Twelve カスタマイズ

何点かTwentyTwelveのカスタマイズについてご質問をいただきましたのでここでまとめてみます。 目次 子テーマのつくりかた 他記事へのリンク アーカイブタイトル("カテゴリー別アーカ

ナビゲーションメニューに検索フォームを追加

メニュー内に検索フォームを追加したいという問い合わせをいただいたので試してみました。 メニューのつくられかた まずは、WordPressでメニューがつくられる手順を説明します。 箱をつく

Google Code Prettifyを使用してソースコードを表示をしてくれる「Prettify Code Syntax」

Prettify Code Syntaxは、WordPressでGoogle Code Prettifyを使用してソースコードを表示してくれるプラグインです。 プラグインダウンロード Google

Comment

  1. @FlonNk よくわからんが一応。 http://kwski.net/wordpress/1102/  後は超初心者講座とかwordpressマニュアルとか見ればいいんじゃない?

@_cooshin にコメントする コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

PAGE TOP ↑