很抱歉这个令人困惑的标题。我在wordpress中显示帖子列表,并使用foreach从每个帖子显示图像,标题等。我需要的是每个帖子都有一个导航,它使用锚点提供指向同一页面内其他帖子的链接。
我在第一个中创建了另一个foreach,它再次抓取相同的帖子并生成导航。这一切都很好,除了每个导航链接的值对于每个帖子中的每个链接都是相同的。
例如,如果帖子被称为post1和post2,则post1中的导航应该有一个指向post1和post2的链接,而是两个链接都转到post1。同样在post2中导航应该有一个指向post1和post2的链接,但两个链接都转到post2:
//first foreach gets all the posts
<?php
$portfolioItems = array( 'numberposts' => 10, 'order'=> 'DESC', 'orderby' => 'title', 'category' => 4 );
$postslist = get_posts( $portfolioItems );
foreach ($postslist as $post) : setup_postdata($post); ?>
// navigation which grabs the same posts and creates a list out of them
<ol>
<?php $portfolioNav = array( 'numberposts' => 10, 'order'=> 'DESC', 'orderby' => 'title', 'category' => 4 );
$postsnav = get_posts( $portfolioNav );
foreach ($postsnav as $postnav) : setup_postdata($postnav); ?>
<li><a href="<?php the_field('portfolio_anchor'); ?>"><?php the_field('portfolio_anchor'); ?></a></li>
<?php endforeach; ?>
</ol>
// The data getting pulled from the first foreach
<div id="<?php the_field('portfolio_anchor'); ?>"></div>
<h3><?php the_title(); ?></h3>
<img src="<?php the_field('main_image'); ?>" />
<?php endforeach; ?>
答案 0 :(得分:0)
使用query_posts而不是get_posts管理解决它:
<?php query_posts('category_name=Portfolio&posts_per_page=10&orderby=title&order=DESC'); ?>
<?php while (have_posts()) : the_post(); ?>
然后对于嵌套查询我做了同样的事情,但在它的末尾添加了wp_reset_postdata,所以它没有覆盖原始查询:
<!-- navigation nested query -->
<div class="row">
<div class="span12 foliodivider" style="display: block;">
<ol>
<?php $navNumber = 1; ?>
<?php $my_query = new WP_Query('category_name=Portfolio&posts_per_page=10&orderby=title&order=DESC'); ?>
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
<li><a href="#<?php the_field('portfolio_anchor'); ?>"><?php echo $navNumber; $navNumber++; ?></a></li>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
</ol>
</div>
</div>
<!-- navigation nested query end-->
然后,在完成第一个查询后,最后在最后结束时添加了最后一个结尾:
<div id="<?php the_field('portfolio_anchor'); ?>"></div>
<h3><?php the_title(); ?></h3>
<img src="<?php the_field('main_image'); ?>" />
<?php endwhile; ?>