logo
Published on

WordPressフックで特定カテゴリの記事を除外する

Authors

WordPress APIのフック・PHPで、記事一覧から特定カテゴリの記事を除外する方法について紹介します。 exclude_category()関数を以下のように使用します。


function exclude_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'cat', '-3' );
}
}
add_action( 'pre_get_posts', 'exclude_category' );

解説: 'cat'というのは猫カテゴリを除外…ってことじゃなくて、これはまぁカテゴリを意味する文字列そのものみたいです。なのでここは変更しない。 第二引数の-3。これがカテゴリになります。 カテゴリには数値が割り当てられており、例えば、http://example.com/blog/?cat=1はカテゴリのページです。これは"ブログ"という名前のカテゴリになりますが、このカテゴリの数値は1ということになります。 "ブログ"カテゴリを記事一覧から除外したいなら、-1とかけばいいです。 複数のカテゴリを指定するには、,で区切ります。

参考:

Learn how to hide specific post from the WordPress homepage