2015-09-06 3 views
1

Я пытаюсь настроить таргетинг на последнее изображение в сообщении Wordpress. Каждый пост имеет разные количества изображений внутри, и я хочу, чтобы название перекрывало последнее.таргетинг на последнее изображение в Wordpress post - неопределенное количество

У меня есть код, предназначенный для ПЕРВОГО изображения сообщения и помещающего перекрывающийся заголовок в div, который перекрывается. Проблема в том, что я не знаю, как изменить ее, чтобы определить и направить на нее последнее изображение.

HTML

 <?php 
      preg_match_all('/(<img [^>]*>)/', get_the_content(), $images); 
      for($i=0; isset($images[1]) && $i < count($images[1]); $i++) { 
       if ($i == 0) { 
       // only printed when looping on 1st image with a wrapped <div> element 
       echo sprintf('<div class="first-img"><h1>%s</h1>%s</div>', get_the_title(), $images[1][$i]); 
       continue; 
      } 
      echo $images[1][$i]; 
      } 
     ?> 

EDIT - Я хочу, чтобы все изображения отображались, но я хочу, чтобы предназначаться последний поставить титул более-топ

ответ

1

Вы можете использовать end PHP функцию, чтобы получить последний элемент массива изображений.

<?php 
     preg_match_all('/(<img [^>]*>)/', get_the_content(), $images); 
     if(!empty($images[1])){ 
      $last_image = end($images[1]); 
      echo sprintf('<div class="first-img"><h1>%s</h1>%s</div>', get_the_title(), $last_image); 
     } 
    ?> 

http://php.net/manual/en/function.end.php

EDIT: Попробуйте это, если вы хотите, чтобы все изображения:


<?php 
     preg_match_all('/(<img [^>]*>)/', get_the_content(), $images); 
     for($i=0; isset($images[1]) && $i < count($images[1]); $i++) { 
      if ($i == end(array_keys($images[1]))) { 
      // only printed when looping on 1st image with a wrapped <div> element 
      echo sprintf('<div class="first-img"><h1>%s</h1>%s</div>', get_the_title(), $images[1][$i]); 
      continue; 
     } 
     echo $images[1][$i]; 
     } 
    ?> 
+0

проблема, что он отображает только последнее изображение, а затем, я все еще хочу все изображения – user3550879

+0

См. ответ, я обновил, чтобы отобразить все изображения – gskhanal

+0

отлично! Спасибо – user3550879

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