在循环中创建包含自定义字段内容的弹出框

时间:2014-06-22 作者:user3164127

我先用ThickBox试试,然后用我在另一个网站上使用的一些代码。。。完全失败。

The Goal:我有一个自定义的帖子类型(产品),有很多自定义字段。我还有一个页面,上面写着“显示所有这些自定义字段,并为每个字段显示自定义字段X、Y和Z”。到目前为止,一切正常。

当我尝试为其中一个字段插入一个弹出窗口或可折叠元素时,就会出现问题(sample_script).

无论我尝试什么,无论结果如何,都只会显示sample_script 来自页面/循环内部第一项的值。因此,如果你点击一个链接,就会触发一个弹出/隐藏的手风琴,显示sample_script, 你只会得到sample_script 重视第一篇文章,而不是你所看到的任何其他自定义文章。

What I have Right Now:这是我正在使用的当前代码animatedcollapse.js:

    <?php query_posts( array(
\'post_type\' =>\'product\',
\'orderby\' => \'title\',
  \'order\' => \'ASC\',
 \'showposts\' => 9999999,
\'tax_query\' => array(
    array(
        \'taxonomy\'  => \'Group\',
        \'field\'     => \'slug\',
        \'terms\'     => array( \'books\',\'video\' ),
        \'operator\'  => \'NOT IN\',
    ),
)
    ) ); ?>
        <?php while ( have_posts() ) : the_post(); ?>
        <div style="width:100%; display:block; text-align:center">
          <?php if( get_post_meta($post->ID, \'highspeed_daytime_mp3_code\', true) ) { ?>
          <div class="project-floater">
            <center>
              <?php the_title( \'<h2 class="entry-title"><a href="\' . get_permalink() . \'" title="\' . the_title_attribute( \'echo=0\' ) . \'" rel="bookmark">\', \'</a></h2>\' ); ?>
              <a href="<?php the_permalink() ?>" rel="bookmark"><img class="thumb" src="<?php echo get_post_meta( get_the_ID(), \'product_cover\', true ); ?>" alt="<?php the_title(); ?>" width="142" /></a><br />
              <a href="javascript:animatedcollapse.show(\'script-sample\')">What\'s On the Recording?</a>
              <div id="script-sample" style="display:none; float:none">
                <div style="width:70px; padding-left:10px; float:right"><a href="javascript:animatedcollapse.hide(\'script-sample\')"><img src="<?php bloginfo(\'template_directory\'); ?>/images/btn_close_button.png" alt="Close"></a></div>
                <?php echo get_post_meta($post->ID, \'sample_script\', true); ?></div>
              <div align="center"><a href="http://www.ewebcart.com/cgi-bin/cart.pl?merchant=2465&add=01&item_id=<?php echo get_post_meta( get_the_ID(), \'highspeed_daytime_mp3_code\', true ); ?>" target="_self"><img src="images/homebuyplatinum.gif" alt="<?php the_title(); ?>" width="75" height="30" border="0"></a></div>
              </a>
            </center>
          </div>
        </div>
        <?php } else { ?>
        <?php } ?>
        <?php endwhile; ?>
        <?php wp_reset_query(); ?>
有谁非常聪明和兴奋地帮助一个哑巴吗?我快淹死了!我只需要隐藏每个项目的示例脚本,直到用户单击它,然后它要么展开,要么弹出(我不在乎哪个,我只需要显示内容)。

1 个回复
SO网友:engelen

问题是您没有为每个弹出元素分配唯一的ID。HTML元素ID应该是唯一的,并且每次调用animatedcollapse.show( \'script-sample\' ) 它将以id为“script sample”的第一个元素为目标。您可以使用post ID为每个弹出元素分配一个唯一的ID:

<div id="script-sample-<?php the_ID(); ?>" [..]
您可以使用

animatedcollapse.show( \'script-sample-<?php the_ID(); ?>\' )
顺便说一下,你可能不应该使用query_posts, 太可怕了there are better alternatives.

结束

相关推荐

使用META_QUERY的多个查询

我试图将“Featured1314”类别中的帖子分为两个列表,即将发生的事件>=今天的日期,过去发生的事件为<;今天的日期。我在帖子中添加了自定义字段,名称为“concert\\u date”,值与日期格式Ymd匹配(例如:20140611)我在下面使用的代码很接近,第一个查询的结果正确,但第二个查询的结果与第一个查询的结果重复。<h1>2013-14 Concert Season</h1> <?php $to