wp プラグインの作成16 pre_get_postsを使う2 カテゴリ名から特定のカテゴリだけ非表示
2013/06/17
とりあえず「カテゴリ名から特定のカテゴリだけ非表示」をやってみる。
function filterTest( $wpQuery = '' ) {
// 管理画面・メインクエリーでない場合は終了
if ( is_admin() || ! $wpQuery->is_main_query() ){
return;
}
$catObj = get_category_by_slug('xxx');
$wpQuery->set( 'category__not_in', array($catObj->term_id) );
}
add_action('pre_get_posts', 'filterTest');
// 管理画面・メインクエリーでない場合は終了
if ( is_admin() || ! $wpQuery->is_main_query() ){
return;
}
$catObj = get_category_by_slug('xxx');
$wpQuery->set( 'category__not_in', array($catObj->term_id) );
}
add_action('pre_get_posts', 'filterTest');
雑記
「特定のカテゴリを非表示」ってのが「category__not_in」。必要になるのは「カテゴリID」
カテゴリIDを調べるのが「get_category_by_slug()」ってヤツ。
これで完成っていいたいけど、目的はプラグインにしたいしカテゴリを最初に決めるってのがイヤなので、まだ続く。
次回は、テンプレートに「適当なタグを追加・引数に除外したいカテゴリ名」を記載。それを受け取って「カテゴリ名から特定のカテゴリだけ非表示」ってやるつもり。