WP_Query中的重复函数

时间:2014-02-24 16:31:28

标签: php html bootstrap-modal

我有一个显示帖子列表的WP_Query。但是,相当标准的是,我调用了多个函数实例,如the_title();用于弹出模式,该弹出模式应该显示单击的帖子,而只是再次显示循环中的第一个。

<?php
   $members = new WP_Query( 'post_type=member' );
   if ( $members->have_posts() ) :
   while ( $members->have_posts() ) : $members->the_post();

   // get the src of the post thumbnail
   $src = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'full', false, '' ); 
   $thumbnailSrc = $src[0];  
   ?>

        <div class="col-sm-3 member">
          <img src="<?php bloginfo('template_directory'); ?>/timthumb.php?src=<?php echo $thumbnailSrc; ?>&h=250&w=250&zc=1q=100" alt="" data-toggle="modal" data-target="#memberModal">
          <h4><?php the_title(); ?></h4>
          <p><?php the_field('member_title'); ?></p>
        </div>
        <div class="modal fade" id="memberModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
          <div class="modal-dialog">
            <div class="modal-content">
              <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
              </div>
              <div class="modal-body">
                <img src="<?php bloginfo('template_directory'); ?>/timthumb.php?src=<?php echo $thumbnailSrc; ?>&h=300&w=650&zc=1q=100" alt="" class="img-responsive">
                <h2><?php the_title(); ?></h2>
                <p><?php the_field('member_title'); ?></p>
                <p class="lead"><?php the_field('member_introduction'); ?></p>
                <?php the_field('member_description'); ?>
              </div>
            </div><!-- /.modal-content -->
          </div><!-- /.modal-dialog -->
        </div><!-- /.modal -->

        <?php endwhile; else:
          echo '<p>Sorry, there are no posts to display</p>';
          endif;
        ?>

在上面的示例中,为每个帖子创建了一个div.member。但是div.modal只显示了第一篇文章。

在某种程度上,我正在尝试为每个帖子创建其中一个(div.member + div.modal)。

更新

这是一个视觉表现。循环向post_type中的四个'成员'吐出每个成员的数据。

http://img42.com/k2Cdx

但无论我点击哪一个,模态只是从第一篇文章中获取数据。

http://img42.com/Pjq9P

2 个答案:

答案 0 :(得分:1)

你的循环正在使用相同的类和ID创建多个模态。当您单击链接以显示模态时,JS将只获取DOM中的第一个项目。我建议你创建一个循环计数器来增加你的ID。

在while循环开始之前 - &gt;

<?php $count = 0; ?>

在while循环中 - &gt;

<?php $count++; ?>

然后是您的ID - &gt;

<div class="modal fade" id="memberModal<?php echo $count; ?>" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">

这将增加您可以使用jQuery定位的ID。如果你想让它正常运行,你将不得不计算条目的数量,然后在jQuery中循环,或者你可以本地化脚本并将变量输出到你的JS。

答案 1 :(得分:0)

the_title()应该需要任何类型的参数来识别当前的迭代帖子。 您没有指定post_id既不是post_ object,也不是指定the_title()可以使用的任何全局值。

例如,您可以像 get_post_thumbnail_id($ post-&gt; ID)

一样传递参数 $ post-&gt; ID 我可以问你一件事吗?你在哪里设置 $ post var? 我认为你想在循环时这样做但是我看不到它在哪里做了

也许你需要像

这样的东西
$post = $members->the_post();

while 循环第一行...