0

我有一个名为“视频”的自定义帖子类型,在该自定义帖子类型中,我有一个元框,用户可以在其中粘贴 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&amp;byline=0&amp;portrait=0&amp;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。模态显示每个帖子的第一个帖子的链接。请参阅示例小提琴。单击“虚拟图像”,您将明白我的意思。如何动态分配选择器,以便每个帖子图像显示它对应的 vimeo 链接?

4

1 回答 1

3

使用get_the_ID()

检索当前帖子的数字 ID。此标签必须在 循环内

$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"给多个元素,但 id 属性在 html 标准中应该是唯一的动态管理帖子的模式弹出窗口

 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&amp;byline=0&amp;portrait=0&amp;color=cc6f1a" width="500" height="281" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
 </div>
 </div>
于 2013-10-01T19:25:30.473 回答