最近制作しているサイトでは、複数のカスタム投稿タイプを作って細分化するために「1つのカスタム投稿タイプに対して、複数のカスタムタクソノミーを設定」している状況があって・・・
で、そのカスタムタクソノミーからさらに細分化するために、タームを作って投稿を所属させています。
複数のカスタムタクソノミーのタームに所属している投稿数の合計を取得する方法
ところで・・・複数のカスタムタクソノミーのタームに所属している投稿数を絡めて、いろいろと処理をする必要があって。
例えば、「food」「drink」と2つのカスタムタクソノミーのタームに所属している投稿数の合計を取得する場合は、下のような方法でできます。
「food」「drink」 2つのカスタムタクソノミーがあった場合
<?php //複数のカスタムタクソノミーのタームに所属している投稿数の合計を取得 $count = ''; //初期設定 ここに投稿数の合計を格納する $taxonomies = array('food','drink'); //配列にカスタムタクソノミーを指定 $terms = get_terms( $taxonomies ); //get_termsで取得 if ( !empty( $terms ) && !is_wp_error( $terms ) ){ //エラーがなければ以下の処理を実行 foreach( $terms as $term ){ //取得できたタームごとに処理 $count += $term->count; //投稿数を加算していく } } ?>
上のコードがやっていること
大体コード内のコメントに書きましたが、「$count」に格納されている数字が投稿数の合計です。「get_terms」を使うと取得できますね。「get_terms」はもっといろんなことができますので、詳細はCodexをご参考ください。
私個人的にですが、冒頭に書いたように「複数のカスタム投稿タイプそれぞれに複数カスタムタクソノミーが指定されていて、さらにタームも複数存在する」っていうパターンでサイトを設計することが多くなってきました。
今後も使いそうなのでメモ書きました。
このページを共有する