我有一个名为“视频”的自定义帖子类型,在该自定义帖子类型中,我有一个元数据,用户可以在其中粘贴vimeo链接。我正在尝试查询视频自定义帖子类型的元数据,但下面的代码为每个帖子返回相同的元数据(vimeo链接),即使它们在仪表板中不同。我希望每个帖子在循环中拥有自己的vimeo链接。谢谢您的帮助!如果我需要更明确的话,请告诉我。
$args = array( 'post_type' => 'video', 'posts_per_page' => 10,);
$the_query = new WP_Query( $args );
echo '<section id="our-work">';
echo '<div class="row-fluid">';
$i = 1;
if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post();
global $post;
$vimeo = get_post_meta( $post->ID, '_cmb_test_embed', true );
$counter += 1;
if($counter == 4 || $counter == 5 || $counter == 9 || $counter == 10) :
echo '<div class="span6">';
the_post_thumbnail();
echo '</div>';
else:
$thumb = wp_get_attachment_image_src(get_post_thumbnail_id(), 'thumbnail_name');
$vimeo_id = (int) substr(parse_url($vimeo, PHP_URL_PATH), 1); ?>
<div class="span4">
<div class="myModalThumbnail"><img src="<?php echo $thumb[0]; ?>"/></div>
</div>
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body">
<iframe src="//player.vimeo.com/video/<?php echo $vimeo_id; ?>?title=0&byline=0&portrait=0&color=cc6f1a" width="500" height="281" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
</div>
</div>
<?php endif;
// if multiple of 3 close div and open a new div
if($i == 3 || $i == 5 || $i == 8 || $i == 10) {echo '</div><div class="row-fluid">';}
$i++; endwhile; endif;
echo '</div>';
echo '</section>';
// Reset Post Data
wp_reset_postdata();
?>
更新 -
我弄清楚是什么导致了这个问题。这是模态的jQuery。模态显示每个帖子的第一个帖子链接。请参见示例fiddle。点击“虚拟图像”,你会看到我的意思。如何动态分配选择器,以便每个帖子图像显示相应的vimeo链接?
答案 0 :(得分:2)
检索当前帖子的数字ID。此标记必须在 The Loop
$vimeo = get_post_meta( get_the_ID() , '_cmb_test_embed', true );
编辑尝试在循环启动时初始化为空,如
if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post();
$vimeo_id ="";
$vimeo="";
你已经为多个元素分配了id="myModal"
但是html标准中的id属性一旦被分配就不会对其他元素使用相同的id而是你可以使用class属性我在html中进行了一些更改也可以在你的javascript中看到你如何动态管理帖子的模态弹出窗口
jQuery(document).ready(function($) {
$('.myModalThumbnail').click(function () {
var modalclass= $(this).attr('id');
$("."+modalclass).modal('show');
});
});
<div class="span4">
<div class="myModalThumbnail" id="post-<?php echo get_the_ID();?>"><img src="<?php echo $thumb[0]; ?>"/></div>
</div>
<div class="modal hide fade post-<?php echo get_the_ID();?>" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body">
<iframe src="//player.vimeo.com/video/<?php echo $vimeo_id; ?>?title=0&byline=0&portrait=0&color=cc6f1a" width="500" height="281" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
</div>
</div>