表題の通りです。
以下のような場合に、物件情報のうち、tokyo のタクソノミーがついているものの件数を取得する方法を教えてください。
・物件情報(カスタム投稿タイプ)
・area(カスタムタクソノミー)
・tokyo(ターム)
・osaka(ターム)
・nagoya(ターム)
初歩的な質問で申し訳ありませんが、よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
まず、最終的な目標は”特定の投稿タイプの特定のタームに属する投稿の総数を取得する”こととします。
こんな関数を作ってみました。
php
1function count_term_post($post_type, $tax, $slug, $echo = true){ 2 $args = array( 3 'posts_per_page' => -1, 4 'post_type' => $post_type, 5 'tax_query' => array( 6 array( 7 'taxonomy' => $tax, 8 'field' => 'slug', 9 'terms' => $slug 10 ) 11 ) 12 ); 13 $result = get_posts($args); 14 $num = count($result); 15 if($echo){ 16 echo $num; 17 }else{ 18 return $num; 19 } 20} 21 22// 呼び出すときは下記のように実行 23count_term_post('投稿タイプ','タクソノミー名','タームのスラッグ');
処理の流れとしては、まず普通の投稿を取得するのと同じく投稿タイプ、タクソノミー、スラッグで絞り込んだ投稿をget_postsで取得します。
get_postsは絞り込み結果を配列で返すので、posts_par_pageの値を-1にして投稿を全て取得するようにし、get_postsが取得した配列の要素の数をcountで取得し返す流れになります。
第4引数に渡す値を指定しない場合は表示され、falseなどにすればデータとして返ってくるようになるのでそこはお好みでお使い下さい。
ぱぱっと書いたコードなのでこのコードで起きた不具合のいかなる責任も負いかねますのであくまで参考程度に…
投稿2016/10/19 09:36
編集2016/10/19 09:41総合スコア138
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/10/20 06:27 編集
2016/10/20 08:43
2016/10/20 08:50
0
ベストアンサー
WP_Query に全件数が入っているので、それを利用すればよいと思います。カスタムタクソノミーページで WP_Query の情報が見たければ $wp_query に入っていると思います。
【[WordPress] WP_Queryで投稿取得後に全件数を求める | きほんのき】
http://kihon-no-ki.com/wordpress-wp-query-found-posts-property
【WordPress:グローバル変数を全て見る「$wp_query」 | hacknote】
http://hacknote.jp/archives/5176/
投稿2016/10/19 15:23
総合スコア69357
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/20 08:44
2016/10/20 10:37
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。