2015-03-10 3 views
0

Итак, я работаю с плагином Advanced Custom Fields для Wordpress 4.1.1, и я создал 4 пользовательских поля: «topIMG», «leftIMG», «centerIMG», «rightIMG». Я сделал их изображения, чтобы добавить больше изображений в сообщение и разместить их на моей странице.Циклическое изображение поля поля

Так первоначально я хотел, чтобы отобразить только одно изображение, чтобы заставить его работать, и это был мой код, чтобы отобразить одно изображение:

<?php 
$image = get_field('topimg'); 
$link = get_field('link', $image['id']); 
?> 
<div class="images"> 
<section id="topIMG"> 
<img src="<?php echo $image['url']; ?>" /> 
</section> 
</div> 

Это работает и отображает изображение. Теперь я попытался создать цикл foreach, чтобы я мог также отображать остальные изображения. Вот этот код:

<?php 
    $array = array('topimg', 'leftimg', 'centerimg', 'rightimg'); 
    $image = get_field($array); 
    $link = get_field('link', $image['id']); 
    $output = '<div class="images">'; 

    foreach($image as $image) { 
     $output .= '<section id='.$array.'>'; 
     $output .= '<img src='.$link.'>'; 
     $output .= '</section>'; 
    } 
    $output .= '</div>'; 
    echo $output; 
    ?> 

Когда я рассматриваю это на сайте, я получаю ошибки, и я не уверен, как правильно отображать эти изображения. Помощь очень ценится.

Ошибки я вижу:

Предупреждение: подстрока() ожидает параметр 1, чтобы быть строка, массив приведены в/home1/rlebo59/public_html/DEV/WP-содержание/плагины/Продвинутая таможенно-поля /core/api.php на линии 268

предупреждения: Illegal типа смещение в IsSet или пустом в /home1/rlebo59/public_html/dev/wp-includes/meta.php по линии 499

предупреждения: неверный аргумент для foreach() в /home1/rlebo59/public_html/dev/wp-content/themes/RyanPortfolio/single.php в строке 17

+0

Первые две ошибки не в этой части кода ... они, кажется, в вашем 'get_field' функции, может вы публикуете его? –

ответ

0

Вы должны перебрать этот массив использовать каждое из изображений:

<?php 
$array = array('topimg', 'leftimg', 'centerimg', 'rightimg'); 
$output = '<div class="images">'; 
foreach($array as $v){ 
    $image = get_field($v); 
    if($v == 'centerimg'){ 
     $link = $image['value']; 
    }else{ 
     $link = $image['value']['url']; 
    } 
    $output .= '<section id='.$v.'>'; 
    $output .= '<img src='.$link.' />'; 
    $output .= '</section>'; 
} 
$output .= '</div>'; 
echo $output; 
?> 
+0

Итак, я попробовал это, что очень ценю помощь, но теперь я получаю эти две ошибки: Предупреждение: недопустимое смещение строки 'id' в/home1/rlebo59/public_html/dev/wp-content/themes/RyanPortfolio/single.php on line 16 Предупреждение: Неверное смещение строки 'id' в /home1/rlebo59/public_html/dev/wp-content/themes/RyanPortfolio/single.php в строке 17 –

+0

Это означает, что '$ image' является строкой там и вы не можете получить доступ к ['id']. Вам нужно var_dump это $ image после '$ image = get_field ('topimg');' в вашем первом примере - что это? Не массив? Если первый пример работал, он тоже должен работать, так же получается $ image. –

+0

Итак, мой код будет выглядеть так? $ image = get_field ($ v); var_dump $ image Это правильно? –

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