2014-11-05 52 views
0

我正嘗試在wordpress中輸出完整尺寸的圖像。這是我的代碼:獲取並輸出圖像的全尺寸

<div class="content project clearfix"> 
    <?php if(have_rows('galeria')): 
      while (have_rows('galeria')) : the_row(); 
       $image = get_sub_field('imagen'); 
       $image_url = $image['sizes']['full'];?> 
       <img class="project-item" src="<?php echo $image_url; ?>"> 
      <?php endwhile; 
    endif; ?> 
    </div> 

的問題是,我發現了以下錯誤:

Warning: Illegal string offset 'sizes' in /Users/user/Sites/diana/wp-content/themes/site/single.php on line 13 

Warning: Illegal string offset 'full' in /Users/user/Sites/diana/wp-content/themes/site/single.php on line 13 

我想輸出中與widthheight屬性的圖像(這些ATTR是可變的,每圖像有不同的大小)。就像這樣:

<img class="project-item" src="img2.jpg" width="422" height="754"> 
+0

您共享的代碼似乎不是引發錯誤的代碼。我在代碼中看不到'medium'。 – Crontab 2014-11-05 15:06:58

+0

看起來像你havnt代碼 – 2014-11-05 15:07:35

+0

中使用'中號'參考對不起,我的錯誤,錯誤是與'full'。我只是試圖使用'中等'的大小,但我遇到了問題。我更新了問題 – codek 2014-11-05 15:07:53

回答

1

正如@Joe提到的,你應該修改ACF像場得到ID而不是URL。您可以使用wp_get_attachment_img_src()。這將返回包含數組:

  • [0] => URL
  • [1] =>寬度
  • [2] =>高度
  • [3] => Boolean:真如果$ url是一個調整大小的圖像,如果是原始圖像則爲false。

所以,在你的情況下,使用將是:

<div class="content project clearfix"> 
    <?php if(have_rows('galeria')): 
     while (have_rows('galeria')) : 
      the_row(); 
      $image = get_sub_field('imagen'); 
      $image_attributes = wp_get_attachment_image_src($image, 'full'); ?> 
      <img class="project-item" src="<?php echo $image_attributes[0]; ?>" width="<?php echo $image_attributes[1]; ?>" height="<?php echo $image_attributes[2]; ?>"> 
     <?php endwhile; 
    endif; ?> 
</div> 

或者,你可以使用wp_get_attachment_image(),這將允許您使用的圖像尺寸關鍵字,你已經提到。在這種情況下,使用情況類似於:

<div class="content project clearfix"> 
    <?php if(have_rows('galeria')): 
     while (have_rows('galeria')) : 
      the_row(); 
      $image = get_sub_field('imagen'); 
      echo wp_get_attachment_image($image, 'full'); 
     endwhile; 
    endif; ?> 
</div> 
+0

作品完美!謝謝你的解釋! – codek 2014-11-05 15:51:53

+1

我剛剛更新以解釋如何使用附件大小關鍵字。這第二種方法簡化了一些事情。 – rnevius 2014-11-05 15:53:23

1

在高級自定義字段(因爲你使用get_sub_field(),這意味着你正在使用的插件),改變你的imagen畫質領域的返回值返回圖片ID。

然後,呼喚你的圖像時,試試這個:

<div class="content project clearfix"> 
    <?php if(have_rows('galeria')): 
     while (have_rows('galeria')) : the_row(); 
      $image = get_sub_field('imagen'); 
      $image_url = wp_get_attachment_image_src($image, 'full'); 
      $featImgURL = $featImgURL[0]; ?> 
      <img class="project-item" src="<?php echo $image_url; ?>"> 
     <?php endwhile; 
    endif; ?> 
</div> 
+0

我已經在ACF配置中更改了'img'來獲取'ID'而不是'URL'。現在我沒有得到錯誤,但是這是輸出:'' – codek 2014-11-05 15:44:00

+0

我忘記了我的代碼中的一行。爲此道歉。我編輯了我的答案以反映它。我添加了「$ featImgURL = $ featImgURL [0];」。 $ featImgURL返回一個數組,並且$ featImgURL [0]返回圖像的url。 – Joe 2014-11-05 16:37:05