0

タイトルがわかりにくいのでごめんなさい。ワードプレスで投稿のリストを表示し、foreachを使用して各投稿の画像やタイトルなどを表示しています。次に必要なのは、アンカーを使用して同じページ内の他の投稿へのリンクを提供するナビゲーションを各投稿に含めることです。

最初の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; ?>
4

1 に答える 1

0

get_posts の代わりに query_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-->

次に、最初のクエリを使用した後、最後に最後の endwhile を最後に追加しました。

  <div id="<?php the_field('portfolio_anchor'); ?>"></div>
  <h3><?php the_title(); ?></h3>
  <img src="<?php the_field('main_image'); ?>" />
  <?php endwhile; ?>
于 2012-07-07T21:44:28.253 に答える