¿Cómo contar entradas dentro de un tipo de entrada personalizada y taxonomía y términos específicos?
Busco contar cuántas entradas existen dentro del tipo de entrada personalizada llamado "videos", pero solo aquellas de la categoría llamada "trabajo".
<?php $count_posts = wp_count_posts('videos'); echo $count_posts->publish; // ?>
¿Cómo puedo ajustar el código anterior para lograr esto?
¡Gracias!

Una solución alternativa utilizando WP_Query sería:
$args = array(
'cat' => 4,
'post_type' => 'videos'
);
$the_query = new WP_Query( $args );
echo $the_query->found_posts;

Para una taxonomía personalizada específica, prueba:
$the_query = new WP_Query( array(
'post_type' => 'TIPO_DE_POST_PERSONALIZADO',
'tax_query' => array(
array(
'taxonomy' => 'TAXONOMIA_PERSONALIZADA',
'field' => 'id',
'terms' => ID_TERMINO
)
)
) );
$count = $the_query->found_posts;
Documentación en https://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters

Mala idea realmente. ¿Qué pasa si tienes 15,000 publicaciones? ¿Las cargas TODAS en memoria? Este tipo de conceptos erróneos podrían arruinar un sitio en producción.

Como menciona @Cranio arriba: pésima idea obtener todas las publicaciones solo para contarlas.

Sé que este es un hilo antiguo, pero aparece primero en Google, así que aquí está la solución REAL sobre cómo hacer esto.
$term = get_term( $termId, $taxonomy );
$total_in_term = $term->count;
Así que necesitas pasar el ID del término y la taxonomía. Esta es la solución más ligera y además tiene el beneficio de funcionar con taxonomías personalizadas.

Encontré esto mientras investigaba algo similar, así que aquí está mi solución por si le resulta útil a alguien más...
Nota: La respuesta de Harmonic funciona, dependiendo del escenario aunque puede ser más fácil hacer esto en su lugar:
$count = get_category($category->term_id)->category_count;
Donde $category
es tu objeto de taxonomía.
Nota importante: esto asume que ningún otro post_type usa la misma taxonomía.
Detalles: get_category()
es en realidad una función envoltorio de get_term()
.
En este caso, get_term() tiene un parámetro name__like que get_category() no tiene. Probablemente haya otras pequeñas diferencias también.
Ver: get_term() get_category

Básicamente, si lo haces con tu solución encontrada, desperdiciarás muchos recursos de la base de datos cuando tengas que recuperar muchas publicaciones.
$query = new WP_Query();
echo $query->found_posts();
Sin embargo, WP_Query->found_posts solo recupera 'posts_per_page' y realiza el trabajo de COUNT(*) en MySQL por ti. Por lo tanto, te recomiendo que uses este último método.
