WP_Query pentru postare personalizată nu afișează conținut, bucle multiple și get_template_part
Am probleme cu afișarea testimonialelor mele. Pe page.php am o secțiune pentru testimoniale. Am o buclă care preia conținutul pentru page.php, și apoi un get_template_part('content', 'testimonials') pentru a obține bucla de testimoniale.
<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>Nu există postări :( </p>
<?php endif; ?>
</div>
<?php get_template_part( 'content', 'testimonials' ); ?>
Deci bucla mea principală arată ca mai sus ^^. Bucla pentru testimoniale arată astfel în content-testimonials.php:
<?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>Nu există testimoniale :( </p>
<?php endif; ?>
Sunt relativ nou în WordPress și nu văd ce lipsește, am verificat în zona de administrare că există testimoniale, am editat câmpul personalizat să se afișeze dacă tipul postării este egal cu testimonial, dar tot nu reușesc să înțeleg de ce nu se încarcă.
Aștept cu interes răspunsurile voastre, mulțumesc anticipat!
Cred că ai uitat să verifici dacă $the_query are postări.
<?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>Nu există recomandări :( </p>
<?php endif;
wp_reset_postdata(); ?>
Și nu uita să resetezi datele postării dacă rulezi mai multe interogări pe o pagină.

Superb! Mulțumesc frumos! Ce pacoste, am ratat cel mai simplu lucru. A funcționat perfect!

Asigură-te că resetezi și postdata la fiecare interogare, dacă rulezi mai multe interogări pe o pagină. cu wp_reset_postdata(); Am actualizat răspunsul meu cu această informație.

@JakeGabb nu uita să accepți acest răspuns :-). Pentru informații, verifică pagina [tour]

@JakeGabb ah da, restricțiile pentru utilizatorii noi, am uitat de asta, scuze. Apropo, Bine ai venit pe WPSE.
