WordPressでget_postsする際、指定したカテゴリとタグの両方をもったpostを取得する方法を確認するまで、すんなり辿りつけなかったのでメモ。
結果的には、
カテゴリー → ’category’ => カテゴリ
タグ → ’tax_query’ => 条件
を合わせて使えばよいです。
目次
ずばり正解
$args = array( 'category' => 19, 'tax_query' => array( array( 'taxonomy' => 'post_tag', 'field' => 'slug', 'terms' => 'hoge' ) ) ); $posts = get_posts( $args );
以上!
当初、タグの場合もcategoryと同じように
‘post_tag’ => 1
みたいな使いかたができると思ったのですが、ググってみるとquery_postsでtax_queryを使っている記事ばかりでした。
で、英語のページを探したところ
Template Tags/get posts « WordPress Codex
カスタムタクソノミーのこちらを発見。
$args = array( 'tax_query' => array( array( 'taxonomy' => 'genre', 'field' => 'slug', 'terms' => 'jazz' ) ) ); $postslist = get_posts( $args );
これ、taxonomyのところにpost_tag入れたらできるんじゃね?と試したところ、無事に最初に紹介したコードで、指定したカテゴリとタグをもつ投稿をget_postsすることができました。
まとめ
これが解決したので、会社のホームページの修正ができる。