我有一个显示帖子列表的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">×</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中的四个'成员'吐出每个成员的数据。
但无论我点击哪一个,模态只是从第一篇文章中获取数据。
答案 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 循环第一行...