Contando el número de entradas (tipo de entrada personalizada) Problemas de consulta
Estoy tratando de contar el número total de entradas de un tipo de entrada personalizada "jobs". Mi consulta solo devuelve "0" cuando sé que hay entradas. No creo que esté verificando si el tipo de entrada tiene publicaciones, pero no tengo idea de por qué... ¿alguna sugerencia?
<?php $jobs = new WP_Query(array( 'post_type' => 'jobs' ));?>
<?php if ($jobs->have_posts()) {
$count_posts = wp_count_posts()->publish;
if ( $count_posts == "1" ) {
echo "<h2>Actualmente hay una vacante...</h2>"; }
else { echo "<h2>Actualmente hay $count_posts vacantes...</h2>"; }
} else { ?>
<h2>Actualmente no hay vacantes.</h2>
<?php } ?>

La función wp_count_posts
tiene el parámetro $type
para especificar el tipo de publicación a contar, debes usar este parámetro si deseas obtener el número de trabajos
así:
$count_posts = wp_count_posts( 'jobs' )->publish;

Reemplaza estos con tu meta_key y meta_value:
$meta_key = 'x';
$meta_value = '2';
$sql = "SELECT count(DISTINCT pm.post_id)
FROM $wpdb->postmeta pm
JOIN $wpdb->posts p ON (p.ID = pm.post_id)
WHERE pm.meta_key = '$meta_key'
AND pm.meta_value = '$meta_value'
AND p.post_type = 'post'
AND p.post_status = 'publish'
";
$count = $wpdb->get_var($sql);
echo "<p>El conteo es: $count</p>";

Es una muy mala práctica usar SQL plano en tu código. Hay muchas funciones envoltorio de WP que hacen lo mismo e incluso más.

@NoSense aparte de que las funciones envoltorio integradas son realmente muy lentas ya que devuelven montones de metadatos que nadie pidió. Usar SQL es una forma realmente eficiente de obtener datos específicos que necesites.
