Nie jestem pewien dlaczego, ale użyłem get_posts()
zapytania do niektórych danych. Potem użyłem setup_postdata()
... Myślę, że jest używany, aby móc używać funkcji takich jak the_permalink()
etc z nowymi danymi posta?
<?php foreach ($childPosts as $cp) : setup_postdata($cp); ?>
<article <?php post_class() ?> id="post-<?php the_ID(); ?>">
<h1><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h1>
<?php if (has_post_thumbnail()) : ?>
<a href="<?php the_permalink() ?>"><?php the_post_thumbnail(($hasOutputNotFeaturedDiv) ? 'thumb-small' : null) ?></a>
<?php endif; ?>
<?php the_excerpt(); ?>
<p class="more"><a href="<?php the_permalink() ?>">Read more ...</a></p>
<?php include (TEMPLATEPATH . '/inc/meta.php' ); ?>
</article>
<?php endforeach; ?>
ale wygląda na to, że the_excerpt
zawiera tylko nową wartość danych postu, dlaczego tak jest? Uważam, że jeśli echo get_the_permalink($cp)
go użyję, działa dobrze. Myślę jednak, że krótsza wersja będzie lepsza
Zastąpić
z
Musisz więc użyć dokładnej
$post
zmiennej wraz zsetup_postdata()
.źródło
setup_postdata()
?W zależności od tego, gdzie używasz setup_postdata () (jeśli nie ma go np. W głównej pętli lub w widżecie funkcji / paska bocznego), może być konieczne zadeklarowanie -
źródło
global post;
nie działa,setup_postdata($post);
jeśli chcesz użyćthe_title()
rodziny poleceń itp.Jest w https://codex.wordpress.org/Function_Reference/setup_postdata
Zamiast tego użyj
... upewnij się również, że Twój obiekt
$post_object
jest prawidłowym obiektem WP_Post.źródło
Podczas wyszukiwania postów użyj zwykłej pętli z przekazanym do niej zestawem argumentów. Następnie zresetuj zapytanie na końcu.
źródło
setup_postdata()
to nie działa? Czy źle go wykorzystałem?$post
zamiast$cp
naprawia problem.