Я не уверен, почему, но я использовал get_posts()
для запроса некоторых данных. Тогда я использовал setup_postdata()
... Я думаю, что он используется, чтобы я мог использовать такие функции, как и the_permalink()
т.д. с новыми данными сообщения?
<?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; ?>
но похоже, что он the_excerpt
содержит только новое значение данных поста, почему это так? Я считаю, что если я использую echo get_the_permalink($cp)
это работает нормально. Но я думаю, что более короткая версия будет лучше
Заменить
с
Так что вам нужно использовать точную
$post
переменную вместе сsetup_postdata()
.источник
setup_postdata()
?В зависимости от того, где вы используете setup_postdata () (если он не находится в основном цикле или, например, в виджете функции / боковой панели), вам также может потребоваться объявить -
источник
global post;
не работает,setup_postdata($post);
если вы хотите использоватьthe_title()
семейство команд и т. д.Это в https://codex.wordpress.org/Function_Reference/setup_postdata
Вместо этого используйте
... также убедитесь, что вы
$post_object
действительный объект WP_Post.источник
При запросе сообщений просто используйте обычный цикл с набором аргументов, переданных в него. Затем сбросьте запрос в конце.
источник
setup_postdata()
не работает? Я использовал это неправильно?$post
вместо решения$cp
проблемы.