2014-11-05 4 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 

Я хочу Ouput изображения с атрибутами width и height (эти Аттрибут изменчивы, каждым изображение имеет разные размеры). Так же, как это:

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

Код, который вы использовали, не является кодом, который выдает ошибку. Я не вижу ссылки на «medium» в вашем коде. – Crontab

+0

кажется, что вы havnt использовали ссылку 'medium' в коде –

+0

извините, моя ошибка, ошибка с' полным'. Я просто пытался использовать «средний» размер, но у меня возникла проблема. Я обновил вопрос – codek

ответ

1

Как уже упоминалось @Joe, вы должны изменить поле изображения ACF, чтобы получить ID вместо URL.

Затем вы хотите использовать wp_get_attachment_img_src(). Это будет возвращать массив, содержащий:

  • [0] => URL
  • [1] => ширина
  • [2] => высота
  • [3] => логическое значение: верно, если $ 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

+1

Я просто обновился, чтобы объяснить, как использовать ключевые слова вложения. Этот второй метод немного упрощает. – rnevius

1

В продвинутом пользовательских полей (так как вы используете get_sub_field(), это означает, что вы используете этот плагин), изменить поле imágen вернуться 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

Я изменил 'img', чтобы получить' ID' вместо 'URL' в конфигурации ACF. Теперь я не получаю ошибок, но это результат: '' – codek

+0

Я забыл строку в своем коде. Извиняюсь за это. Я отредактировал свой ответ, чтобы отразить его. Я добавил «$ featImgURL = $ featImgURL [0];». $ featImgURL возвращает массив, а $ featImgURL [0] возвращает URL-адрес изображения. – Joe

Смежные вопросы