2014-10-27 3 views
0

Поскольку мой последний вопрос был дан довольно быстро, я подумал, что снова попробую удачу.Замена Wordpress Галерея изображений

Я пытаюсь создать галерею в пользовательском типе сообщений, который я создал. Я хотел бы иметь возможность добавлять изображения/галерею в сообщение через редактор wordpress admin, но потом функция вытягивает изображения, завертывает их в div и заменяет существующую галерею новыми изображениями.

Я хотел бы сделать это, потому что хотел бы, чтобы изображения вписывались в сетку изображений разных размеров. Например, изображение 1 было бы полной шириной, изображение 2 было бы половиной ширины, изображение 3 квартал и так далее.

Я попробовал два метода, один из которых get_children()

$featuredImage = get_post_thumbnail_id($post->ID); 
$imageArgs = array(
    'numberposts' => 5, 
    'order' => 'DESC', 
    'post_mime_type' => 'image', 
    'post_parent' => $post->ID, 
    'post_type' => 'attachment', 
    'exclude' => $featuredImage 
    ); 
$attachments = get_children($imageArgs, ARRAY_A); 
$rekeyed_array = array_values($attachments); 
$child_image = $rekeyed_array[0]; 
echo '<div class="project-img"><img src="' . $child_image['guid'] . '" class="project-image"></div>'; 
$child_image = $rekeyed_array[1]; 
echo '<div class="project-img w2"><img src="' . $child_image['guid'] . '"></div>'; 
$child_image = $rekeyed_array[2]; 
echo '<div class="project-img w3"><img src="' . $child_image['guid'] . '"></div>'; 
echo '<div class="project-img w3"><img src="' . $child_image['guid'] . '"></div>'; 

, а другой get_post_gallery()

$gallery = get_post_gallery(get_the_ID(), false); 

      /* Loop through all the image and output them one by one */ 
      foreach($gallery['src'] AS $src) 
      { 
       ?> 
       <div class="project-img"> 
       <img src="<?php echo $src; ?>" alt="Gallery image" /> 
       </div> 
       <?php 
      } 

Я не сделал большой прогресс с get_post_gallery(), но я Сорта понимаю, что я буду должны использовать wp_get_attachment_url(), чтобы получить полноразмерные изображения вместо миниатюр.

Теперь два вопроса:

  1. Я немного запутался о массивах, так как я пошел бы около выбора первого изображения в массиве и окружив его в DIV с класса «изображение -большой ", а затем второе изображение и обертывание его в div с классом" image-medium "?

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

EDIT

Я понял вопрос 1, я думаю. Читайте на ассоциативных массивах и поняли, что вы можете сделать что-то вроде echo $gallery['src'][0];, чтобы получить исходный url каждого изображения. Тем не менее, все еще запутанный вопрос 2.

ответ

0

Понял.

//Remove original Gallery 
function remove_the_first_gallery($output, $attr){ 
    $output = '<!-- gallery 1 was here -->'; // Must be non-empty. 
    return $output; 
} 

add_filter('post_gallery', 'remove_the_first_gallery'); 

Это удалило все галереи на странице. Но так как моя новая галерея не является технически post_gallery, она осталась одна.

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