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

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

関連記事

Twenty Fourteen "コメントをどうぞ"の非表示と変更方法

Twenty Fourteenでは、デフォルトで投稿ページと各アーカイブページの各投稿のメタ情報欄に「コメントをどうぞ」というコメントフォームへのリンクが設置されます。 それぞれ、コメントが0件の場

Twenty Thirteen テーマ用フォント "Source Sans Pro" / "Bitter"の使用を止

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

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

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

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

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

「All in One SEO Pack」を代替するための準備

「All in One SEO Pack」は、SEO対策に必要な基本的な設定を行ってくれるプラグインです。とある事情で、無効化することになったので代替を行いました。特に問題があるわけではなく、特殊なこ

no image

Google+ プラスワン(+1)ボタンの設置

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

Twenty Fourteen クレジットを非表示・変更方法

Twenty Fourteenにも最下部に「Proudly powered by WordPress」というコピーライトが表示されます。それを削除もしくは変更するには、footer.phpを編集して行

no image

「編集(Edit)」リンクの非表示方法

ログインした状態で投稿ページを開くと投稿内や各コメントに各編集ページへリンクしてくれる「編集」リンクが表示されます。(繰り返し言いますが、自サイトにログインしているユーザにしか見えません。) こ

画像マウスオーバーでキャプションを表示

メディアをアップロードした際に、「キャプション」項目にテキストを設定された画像を挿入した場合はキャプションショートコードが生成され、ページ内の各画像下にその設定したテキストが表示されます。 今回

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

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

Comment

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

@ZEN6A へ返信する コメントをキャンセル

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

*

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

    PAGE TOP ↑