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

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

関連記事

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

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

"コメントを残す" 削除・文言を変更する方法

コメントフォームに表示される「コメントを残す」はWordPress標準で翻訳される要素です。テーマ側でカスタマイズしていない限り表示されます。 ここでは、この要素を削除したり、文言を変更する方法を紹

Twenty Eleven カスタマイズ

目次 author-info 消す 作成者(投稿者)を消す 投稿者情報を表示しない proudly powered by wordpressのリンクをコピーライトに変更

新年早々やらかした

あけましておめでとうございます。 タイトルどおり、新年早々やらかしてしまいましたのでご報告まで。どうやらかしたかというと、確認用サイトとこのブログを間違えてしまいWordpress 3.5にアップグ

no image

アイキャッチにマウスオーバーすると投稿タイトルを表示

WordPressのフォーラムから定期的に流入があるため、対応をいくつか探ってみました。トピックは、「サムネイルにマウスオーバーするとタイトルが表示されるようにしたい」 ちなみに、投稿内のキャプ

投稿記事から「(ログイン)ユーザー名」がバレるのを防ぐ

ここ最近、アカウント乗っ取りやセキュリティ事故関連のニュースが相次いでいますが、WordPressで制作されたサイトも標的に会っているようです。一般的な手法としては「ブルートフォースアタック」という手

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

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

投稿タイトルのtitle属性を削除など Twenty Twelve 1.2での変更点

TwentyTwelveが1.1から1.2にアップデートされたので、いくつか変更点を洗ってみました。 (*全てを網羅しているわけではありません) 全ての変更部分は、こちらに記載されています。

ログイン画面・機能をカスタマイズ

CSSを変更してスタイル変更 ログイン画面用のCSSを用意して子テーマとして使用します。変更したい部分だけを記述して下さい。 // オリジナル /wp-admin/css/login.min.

Twenty Ten カスタマイズ

Twenty Tenのカスタマイズについてのまとめです。 目次 コンテンツナビゲーション 非表示 「投稿日」を非表示 「作成者(投稿者)」を非表示 "コメントをどうぞ"("leave a

Comment

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

Message

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

*

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

    PAGE TOP ↑