interroga tassonomia multipla e mostra il conteggio dei post
1 risposta
- voti
-
- 2011-07-25
Sono sicuro che una query sqlpersonalizzatafunzionerebbemoltomeglio,maecco un'opzione che utilizzagli strumenti di WordPress disponibili
//first get all categories $categories = get_terms( 'category', array( 'orderby' => 'count', )); //then create an array for easier processing foreach ( $categories as $cat ) { $slugs[] = $cat->slug; $counts[$cat->slug]['count'] = $cat->count; } //then loop over the categories and for each one create a "query" to count the number of available products foreach($slugs as $term){ $products = get_posts(array( 'post_type' => 'product', 'posts_per_page' => -1, 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'category', 'field' => 'slug', 'terms' => array( $term) ), array( 'taxonomy' => 'product_status', 'field' => 'slug', 'terms' => array( "available"), 'operator' => 'NOT IN', ) ) )); $counts[$term]['available'] = count($products); } //then all the is left is to print everyting Out if (count($counts) > 0){ echo '<table><tr><td>Category</td><td>No. of products</td><td>Products available</td></tr>'; foreach ($counts as $key => $val){ echo '<tr><td>'.$key.'</td><td>'.$var['count'].'</td><td>'.$var['available'].'</td></tr>'; } echo '</table>'; }
I'm sure that a custom sql query would work much better but here is an option using the WordPress Tools available
//first get all categories $categories = get_terms( 'category', array( 'orderby' => 'count', )); //then create an array for easier processing foreach ( $categories as $cat ) { $slugs[] = $cat->slug; $counts[$cat->slug]['count'] = $cat->count; } //then loop over the categories and for each one create a "query" to count the number of available products foreach($slugs as $term){ $products = get_posts(array( 'post_type' => 'product', 'posts_per_page' => -1, 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'category', 'field' => 'slug', 'terms' => array( $term) ), array( 'taxonomy' => 'product_status', 'field' => 'slug', 'terms' => array( "available"), 'operator' => 'NOT IN', ) ) )); $counts[$term]['available'] = count($products); } //then all the is left is to print everyting Out if (count($counts) > 0){ echo '<table><tr><td>Category</td><td>No. of products</td><td>Products available</td></tr>'; foreach ($counts as $key => $val){ echo '<tr><td>'.$key.'</td><td>'.$var['count'].'</td><td>'.$var['available'].'</td></tr>'; } echo '</table>'; }
-
Grazie ...tax_queryin wp 3.xx è stupendo ..beh,come hai detto che la querypersonalizzata avrebbefunzionatomeglio,ho stampato wp_querye l'ho usato come query come select count (wp_posts.id) ....Thanks... tax_query in wp 3.xx is awsome.. well as you said custom query would work better, i printed wp_query and used as query as select count(wp_posts.id)....
- 0
- 2011-07-25
- Rajeev Vyas
Ho untipo dipostpersonalizzato "Prodotto", e 2tassonomiepersonalizzate "categoria"e "statoprodotto".
Quello che cerco difare èelencare le categorienelmodello dipaginae mostrareilnumerototale diprodottinella categoriae quanti diessi hanno lo stato "disponibile"
Qualcosa di simile
Categoria|Numero diprodotti|Prodotti disponibili
Qualcunopuòmostrare come ottenerepost che sonoin una determinata categoriae hanno un valore di statoparticolare da un'altratassonomia ...