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

n__1102

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

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

関連記事

n__804

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

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

n__twentyfifteen

Twenty Fifteen テーマ用フォント "Noto" / "Inconsolata"の使用を止

TwentyFifteenでは、テーマ用のフォントとして「Noto」と「Inconsolata」というフォントをGoogleフォントから引っ張ってきて使用されるようです。 ちなみにどのようなフォント

wp-dark-lo-1024x768

多言語化プラグイン「qTranslate」

ブログを多言語化しようと思い、プラグイン「qTranslate」を導入してみました。 General Settingsで使用する言語を選択する ★使用する言語を選択 管理画面「設定」⇒「Lang

no__1089

ウィジェット関連のカスタマイズ・プラグイン

リンクマネージャー WordPress 3.5バージョンアップ以降にリンクマネージャーを追加するには以下のフィルタを設定もしくはプラグインをインストールして下さい。 プラグイン Link M

n__1182

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

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

wp-dark-lo-1024x768

head内に出力される要素を整理

Wordpressを使用していくうちに、head内がカオスな状態になっていくきますよね。そこで、そういう状態になったものをスッキリさせていこうという試みをやっていこうと思います。 削除方法 取り急

no image

投稿タイトル(entry-title)を非表示にする

表題通り「投稿タイトルを表示しない」ことは、"投稿ページ"ではあまりないと思いますが、"固定ページ"では意外とあったりします。 編集画面でTitleを入力しないでおけば、それで済むのですが、ペー

TwentyFourteen

Twenty Fourteen カスタマイズ

「Twenty Fourteen」はWordPress 3.8のデフォルトテーマです。TwentyThirteenから彩りもガラッとかわってますね。個人的には、すごく好きなデザイン。 Twent

867

「タグクラウド」ウィジェット カスタマイズ

タグクラウドは、管理画面ではあまりカスタマイズできません。必要であれば、フィルターフックやプラグインを用いて表示設定や概観の変更を行うことができます。 目次 出力をカスタマイズ 各タグの

n__1117

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

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

Comment

  1. @mk_mizuho さっきのメンションはアレすぎたのでw、ここに具体的な方法掲載されていました。

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

Message

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


*

PAGE TOP ↑