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にアクセスし、ブラウザのソースをみる機能を使用して確認することができます。

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

関連記事

条件を付けて訪問時に開くポップアップを実装できる「WordPress Popup」

「WordPress Popup」は、ユーザの訪問時にポップアップを開くように実装できるプラグインです。それぞれ条件によって開くかどうかを設定することができます。 ダウンロード / サンプル イン

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

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

Twenty Fourteenカスタマイズ用プラグインと派生テーマ

WordPressの現在のデフォルトテーマ「Twenty Fourteen」のカスタマイズに便利なプラグインと、「Twenty Fourteen」をもとに作成されたテーマのまとめです。 カスタマ

Twitterのツイートボタンの設置

Twitterのツイートボタンの設置はプラグインを使用しなくても容易に実装できるようです。 ソーシャルボタン設置のプラグインはこちらにいちおうまとめています。 Tweetボタンの設置コード 公式

ブルー・オレンジ・ピンクと選べるテーマ「Bouquet」をカスタマイズ

プレビューはこちら ダウンロード 目次 ヘッダー画像の高さを変更 アイキャッチをアップロード h1タグがやたら多いので最適化 画像をレスポンシブ対応 フォント「Sorts Mill

JSやCSSに自動で付与されるバージョン番号を非表示に

Wordpressでは、JSやCSSがロードされる際にlinkタグやscriptタグ内にWordpressやプラグインもしくはスクリプトそのもののバージョン番号が付与されます。「?ver=」で検索して

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

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

jQueryをCDNから読み込む

WordPressではデフォルトでjQueryライブラリが同梱されています。この記事では、それをやめて、CDNから読み込み、使用する方法を解説します。 WordPress 3.6 3.9 4.0

Twenty Fifteen カスタマイズ

WordPress 4.1のデフォルトテーマである「Twenty Fifteen」は三世代前の「Twenty Twelve」に似たテーマで非常にシンプルなテーマにまとまっていますね。カスタマイズをまと

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

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

Comment

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

Message

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

*

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

    PAGE TOP ↑