最近ブログに習慣化に関する日記をUPしている@web_shufuです。しかし、日記的コンテンツをその他のコンテンツに混ぜてTOPに表示するとちょっと違和感を感じたので、TOPとフィードのループから習慣化カテゴリの日記コンテンツを除外しました。
2013/7/1、フィードには、習慣化カテゴリの記事を再び載せるようにしました。
TOPからの除外
Topページのループから習慣化カテゴリ(ID41)の投稿を除外するには、ループの直前に以下のように書けばいいです。
<?php query_posts( array(
'category__not_in' => array(41)
) );?>
query_postsはそろそろ時代遅れになるという話ですが、とりあえず問題なく機能しますし、勉強するのが面倒でした。
フィードからの除外
習慣化カテゴリ(ID41)の投稿を除外したフィードは、以下のようなURLで実現できます。
- https://webshufu.com/?feed=rss2&cat=-41
- https://webshufu.com/feed/?cat=-41
これについては過去記事で説明しました。
[img-link url=”https://webshufu.com/exclude-categry-from-feed/” title=”wordpressのfeedから特定categoryに属する投稿を除外|Web Shufu”]
しかし、今回はあえて、function.phpに以下のコードを記入して https://webshufu.com/feed/ で習慣化カテゴリ(ID41)の投稿を除外することにしました。
//フィードからカテゴリ41「習慣化を除外」
function myFilter($query) {
if ($query->is_feed && !is_category()) {
$query->set('category__not_in',array(41));
}
return $query;
}
add_filter('pre_get_posts','myFilter');
Topページのループから習慣化カテゴリ(ID41)の投稿を除外する場合も、本来はこのpre_get_postsを使うやり方が適しているようです。
query_posts
ループを調整するのにquery_postsを使うのは時代遅れとの論調が日に日に強まっているので、勉強していきたいと思います。
以下のページ参考にさせて頂きました。
[img-link url=”http://notnil-creative.com/blog/archives/1688″ title=”Takuro Hishikawa :: query_postsを捨てよ、pre_get_postsを使おう【追記あり】【報告あり】”]