WP_Query no muestra posts en tipo de entrada personalizado, múltiples bucles y get_template_part
Estoy teniendo problemas para mostrar mis testimonios. En page.php tengo una sección de testimonios. Tengo un bucle que obtiene el contenido para page.php, y luego un get_template_part('content', 'testimonials') para obtener el bucle de testimonios.
<div class="grid_12 omega clearfix">
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h1><?php the_title(); ?></h1>
<p><?php the_content(); ?></p>
<hr>
<?php endwhile; else : ?>
<p>No hay publicaciones :( </p>
<?php endif; ?>
</div>
<?php get_template_part( 'content', 'testimonials' ); ?>
Mi bucle principal es el de arriba ^^. Mi bucle de testimonios está en content-testimonials.php y luce así:
<?php
$args = array(
'post_type' => 'testimonials', // Tipo de entrada personalizada
'posts_per_page' => 1, // Mostrar solo 1 testimonio
'orderby' => 'rand' // Orden aleatorio
);
$the_query = new WP_Query( $args );
?>
<?php if ( have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<div class="testimonial push_2 grid_10 clearfix">
<blockquote>“<?php the_field( 'testimonial' ); ?>”</blockquote>
<cite>—<?php the_field( 'name' ); ?></cite>
</div>
<?php endwhile; else : ?>
<p>No hay testimonios disponibles :( </p>
<?php endif; ?>
Soy bastante nuevo en WordPress y no logro ver qué me falta. He revisado el área de administración para asegurarme de que hay testimonios, edité el campo personalizado para que se muestre si el tipo de entrada es testimonial, pero no entiendo por qué no carga.
¡Espero sus respuestas, gracias de antemano!
Creo que olvidaste verificar si $the_query tiene posts.
<?php
$args = array(
'post_type' => 'testimonials',
'posts_per_page' => 1,
'orderby' => 'rand'
);
$the_query = new WP_Query( $args );
?>
<?php if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<div class="testimonial push_2 grid_10 clearfix">
<blockquote>“<?php the_field( 'testimonial' ); ?>”</blockquote>
<cite>—<?php the_field( 'name' ); ?></cite>
</div>
<?php endwhile; else : ?>
<p>No hay testimonios :( </p>
<?php endif;
wp_reset_postdata(); ?>
Y tampoco olvides resetear los datos del post (postdata) si estás ejecutando múltiples consultas en una página.

¡Hermoso! ¡Gracias, amigo! Qué dolor, me perdí lo más simple. ¡Funcionó de maravilla!

Asegúrate de restablecer los datos de la publicación en cada consulta, si estás ejecutando múltiples consultas en una página. Con wp_reset_postdata(); Actualicé mi respuesta con esto.

@JakeGabb no olvides aceptar esta respuesta :-). Para más información, revisa la página del [tour]

@JakeGabb ah sí, las restricciones para nuevos usuarios, lo olvidé, lo siento. Por cierto, bienvenido a WPSE.
