Numărarea postărilor dintr-un tip de postare personalizat și taxonomie și termeni specifici?
Încerc să număr câte postări există în tipul de postare personalizat numit "videos", dar doar cele din categoria numită "work".
<?php $count_posts = wp_count_posts('videos'); echo $count_posts->publish; // ?>
Cum pot ajusta codul de mai sus pentru a realiza acest lucru?
Mulțumesc!

O soluție alternativă folosind WP_Query ar fi:
$args = array(
'cat' => 4, // ID-ul categoriei
'post_type' => 'videos' // tipul postării
);
$the_query = new WP_Query( $args );
echo $the_query->found_posts; // afișează numărul total de postări găsite

Pentru o taxonomie personalizată specifică, încercați:
$the_query = new WP_Query( array(
'post_type' => 'CUSTOM_POST_TYPE',
'tax_query' => array(
array(
'taxonomy' => 'CUSTOM_TAXONOMY',
'field' => 'id',
'terms' => TERM_ID
)
)
) );
$count = $the_query->found_posts;
Documentația la https://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters

Ideea foarte proastă. Ce faci dacă ai 15.000 de articole? Le încarci PE TOATE în memorie? Acestea sunt genul de concepții greșite care pot distruge un site de producție.

După cum menționează @Cranio mai sus: idee groaznică să obții toate articolele doar ca să le numeri.

Știu că acesta este un subiect vechi, dar apare primul în Google, așa că iată adevărata soluție pentru cum să faci asta.
$term = get_term( $termId, $taxonomy );
$total_in_term = $term->count;
Deci trebuie să transmiți ID-ul termenului și taxonomia. Aceasta este cea mai ușoară soluție și are avantajul că funcționează și cu taxonomii personalizate.

Am găsit acest lucru în timp ce cercetam ceva similar și iată soluția mea în caz că este utilă pentru altcineva... Notă: Răspunsul lui Harmonic funcționează, dar în funcție de scenariu poate fi mai ușor să faceți asta:
$count = get_category($category->term_id)->category_count;
Unde $category
este obiectul tău de taxonomie.
Notă importantă aici fiind că aceasta presupune că niciun alt post_type nu folosește aceeași taxonomie.
Detalii: get_category()
este de fapt o funcție wrapper pentru get_term()
.
În acest caz, get_term() are un parametru name__like pe care get_category() nu îl are. Probabil sunt și alte mici diferențe.
Vezi: get_term() get_category

În esență, dacă folosești soluția pe care ai găsit-o, vei consuma destul de multe resurse din baza de date atunci când ai multe articole de preluat.
$query = new WP_Query();
echo $query->found_posts();
Totuși, WP_Query->found_posts
preia doar 'posts_per_page' și face pentru tine operația COUNT(*) în MySQL.
Așadar, îți recomand să folosești această din urmă variantă.
