从使用WCK自定义域创建器创建的自定义域获得单个图像

时间:2012-08-02 作者:Colin

我使用WCK自定义字段创建器创建了一个可重复的自定义字段,用于将成对图像(一种颜色,一种黑白)上载到帖子。因此,例如,一篇帖子可能有三个字段,两幅图像(一种颜色和一个bw)每个帖子总共有六幅图像。

我试图创建一个页面,为该特定类别中的每个帖子输出两个条目的第一个字段。

这是我现在拥有的代码,它可以吐出所有的图像对。我对PHP不太了解,无法解决如何修复此代码。

<ul class="campaign-gallery">
  <?php if ( have_posts() ) : while ( have_posts() ) : the_post();
   $productimgs = get_post_meta( $post->ID, \'productimg\', true );

   if (is_array($productimgs) & $productimgs != \'\' ) { 
        foreach($productimgs as $productimg) {
    $image_color = wp_get_attachment_image_src( $productimg[\'product-image-color\'], \'grid-large\' );
    $image_bw = wp_get_attachment_image_src( $productimg[\'product-image-bw\'], \'grid-large\' );
    echo \'<li>\';
    echo \'<img class="desat" src="\' . $image_bw[0] . \'"  />\';
    echo \'<img class="sat" src="\' . $image_color[0] . \'"  />\';
    echo \'</li>\';
    }
}
?>
<?php endwhile; else: ?>
<p><?php _e(\'Sorry, no posts matched your criteria.\'); ?></p>
<?php endif; ?>
</ul>
我做了一个var\\u转储,看看$productimgs 以下是我复制的可变输出:

    array(3) { 
[0]=> array(2) { 
["product-image-bw"]=> string(3) "211" 
["product-image-color"]=> string(3) "212" } 
[1]=> array(2) { 
["product-image-bw"]=> string(3) "214" 
["product-image-color"]=> string(3) "215" } 
[2]=> array(2) { 
["product-image-bw"]=> string(3) "216" 
["product-image-color"]=> string(3) "217" }
} 


array(2) { 
[0]=> array(2) { 
    ["product-image-bw"]=> string(3) "253" 
    ["product-image-color"]=> string(3) "254" }
[1]=> array(2) { 
["product-image-bw"]=> string(3) "255" 
["product-image-color"]=> string(3) "256" } } 

array(3) { 
[0]=> array(2) { 
    ["product-image-bw"]=> string(3) "211" 
    ["product-image-color"]=> string(3) "212" }
[1]=> array(2) { 
    ["product-image-bw"]=> string(3) "214" 
    ["product-image-color"]=> string(3) "215" } 
[2]=> array(2) { 
    ["product-image-bw"]=> string(3) "216" 
    ["product-image-color"]=> string(3) "217" } } 

3 个回复
最合适的回答,由SO网友:Colin 整理而成

下面是有效的代码。我必须摆脱foreach循环,直接引用数组:

<?php if ( have_posts() ) : while ( have_posts() ) : the_post();

$productimgs = get_post_meta( $post->ID, \'productimg\', true );

$image_color =  $productimgs[0][\'product-image-color\'];
$image_bw = $productimgs[0][\'product-image-bw\'];    
$imgclr = wp_get_attachment_image_src( $image_color, \'grid-large\' );
$imgbw = wp_get_attachment_image_src( $image_bw, \'grid-large\' );
    echo \'<li>\';
    echo \'<a href="\' . get_permalink () . \'"><img class="desat" src="\' . $imgbw[0] . \'"  />\';
    echo \'<img class="sat" src="\' . $imgclr[0] . \'"  /></a>\';
    echo \'</li>\';

?>

SO网友:Koirala Indeep

以最佳方式轻松享受

          <div class="col-md-8">
            <?php $aboutcompanys = get_post_meta(get_the_ID(), \'aboutcompany\', true)?>
              <div class="teaser">
                <?php foreach($aboutcompanys as $aboutcompany){ ?>
                  <img src="<?php echo wp_get_attachment_url($aboutcompany[\'bg-image\']); ?>" alt="<?php echo $aboutcompany[\'title\']; ?>"/>
                <?php }?>
              </div><!-- .teaser -->
            <?php wp_reset_postdata(); ?>
          </div><!-- .col-md-8 -->

SO网友:bishnoi
<?php $productdetail = get_post_meta( $post->ID, \'portfolioslider\', true ); 
                    //echo \'<pre>\';
      //var_dump($productdetail);
      $p=0;
      foreach( $productdetail as $portfolio){

        $src = wp_get_attachment_image_src( $productdetail[$p][\'slide\'], \'full\' );  ?>

                               <li>

                                <a href="javascript:updateFocus(\'pi-focus-<?php echo $p;?>\');">
                                    <img src="<?php echo $src[0];?>"
                                         width="150"
                                         height="150"
                                         class="pi-thumb"
                                        alt="no image available" />
                                </a>

                            </li>

                        <?php

     $p++; } 

?>

                         </ul>     </div>
            </div>
            <div class="carouselControls carouselBox">
                <a href="javascript:void(0);" class="next sides" id="pz-thumbSliderRight">
                    <span class="pz-slider-btn">&nbsp;</span>
                </a>
            </div>
        </div>
    </div>
<div id="pi-items" class="pi-hide">
    <?php $productdetail = get_post_meta( $post->ID, \'portfolioslider\', true ); 

      $p=0;
      foreach( $productdetail as $portfolio){
      ?>


<div id="pi-focus-<?php echo $p;?>">
            <div class="pi-focus pie-box">
            <?php
        $src = wp_get_attachment_image_src( $productdetail[$p][\'slide\'], \'full\' );  ?>

                                    <img src="<?php echo $src[0];?>" width="318" />

                     </div>    
                    <div class="pi-meta pie-box">
                <h2><?php echo $productdetail[$p][\'title\'];?></h2>
                <div class="pi-content clearfix">
               <?php echo $productdetail[$p][\'description\'];?>
               </div>

            </div>      

        </div><?php

     $p++; } 

?>


</div>
<?php endwhile; ?>
结束

相关推荐

Host Images from Link

最近,我从Blogger导入了我的所有帖子,因此帖子中显示的所有图片目前都位于Blogger的服务器上。我想将所有这些图像导入/放入我的服务器,并自动更改每个图像的每个链接。因为有这么多的图片和这么多的帖子,我不能一个接一个地单独去。请指导我如何做到这一点,或者将我重定向到一个插件来完成这项工作。