WordPress でカテゴリーAの記事をフィード配信するときにカテゴリBに属していたら除く

WPでカテゴリAのRSSを配信する際に、カテゴリAとBに登録してるエントリは省きたいんだけど、そゆことできるのかしら。

はい、できます!

言い換えると

  • カテゴリーID:1に属する記事を配信、かつ
  • カテゴリーID:2に属する記事は配信しない

となりますので(例ね)、我らがクエリ改変の切り札 pre_get_posts アクションを使って、そのままの処理を テーマフォルダの functions.php に記述します。

add_action( 'pre_get_posts', 'my_pre_get_posts' );
function my_pre_get_posts( $query ) {
    if ( is_feed() ) {    // フィードだったら
        $query->set( 'category__in'    , 1 );  // カテゴリーID:1を含める      
        $query->set( 'category__not_in', 2 );  // カテゴリーID:2は含めない
    }
}

動作テストする時はフィードの内容が即時反映されるように、記事を追加したり削除したりして WordPress に「ぁ、記事集め直さなかん」って思わせるようにしてね(はぁと

もちろん、含める/含めないカテゴリーは以下のように複数指定できます。

add_action( 'pre_get_posts', 'my_pre_get_posts' );
function my_pre_get_posts( $query ) {
    if ( is_feed() ) {    // フィードだったら
        $query->set( 'category__in'    , array( 1, 2, 3 ) );  // カテゴリーID:1, 2, 3 を含める      
        $query->set( 'category__not_in', array( 4, 5, 6 ) );  // カテゴリーID:4, 5, 6 は含めない
    }
}
動作確認バージョン
  • WordPress 3.1.3

17 Comments

  • 【ブログ】WordPress でカテゴリーAの記事をフィード配信するときにカテゴリBに属していたら除く http://t.co/2ym5kDib

  • "φ(・ェ・o)~メモメモ / “WordPress でカテゴリーAの記事をフィード配信するときにカテゴリBに属していたら除く  |  wpxtreme” http://t.co/fIePtOUB

  • 【ブログ】WordPress でカテゴリーAの記事をフィード配信するときにカテゴリBに属していたら除く http://t.co/2ym5kDib

  • @take_it02 どうぞどうぞ http://t.co/2ym5kDib

  • 書いていただいた・・・。ありがとうございます!

  • 書いていただいた・・・。ありがとうございます! / “WordPress でカテゴリーAの記事をフィード配信するときにカテゴリBに属していたら除く  |  wpxtreme” http://t.co/QV1A5kdS

  • WordPress でカテゴリーAの記事をフィード配信するときにカテゴリBに属していたら除く  |  wpxtreme http://t.co/KyZ5gqAD

  • 【ブログ】WordPress でカテゴリーAの記事をフィード配信するときにカテゴリBに属していたら除く http://t.co/2ym5kDib

  • WordPress でカテゴリーAの記事をフィード配信するときにカテゴリBに属していたら除く  |  wpxtreme http://t.co/WFqKs21n #wordpress

  • WP:RSSの配信記事を制御するコード!
    WordPress でカテゴリーAの記事をフィード配信するときにカテゴリBに属していたら除く http://t.co/t95hAoe1 via @wpxtreme

  • WordPress でカテゴリーAの記事をフィード配信するときにカテゴリBに属していたら除く http://t.co/ELGQbK97 via @wpxtremeいつも勉強になるわぁ

  • 師匠!いつも勉強になります。

    • kz kz

      どーいたまして!

  • WordPress でカテゴリーAの記事をフィード配信するときにカテゴリBに属していたら除く http://t.co/ELGQbK97 via @wpxtremeいつも勉強になるわぁ

  • “WordPress でカテゴリーAの記事をフィード配信するときにカテゴリBに属していたら除く  |  wpxtreme” http://t.co/Ckj1pEVl

  • WordPress でカテゴリーAの記事をフィード配信するときにカテゴリBに属していたら除く

  • WordPress でカテゴリーAの記事をフィード配信するときにカテゴリBに属していたら除く http://t.co/DDqwAYv0