Замена галереи изображений WordPress

Так как на мой последний вопрос был дан довольно быстрый ответ, я решил снова попытать счастья.

Я пытаюсь создать галерею в пользовательском типе поста, который я создал. Я хотел бы иметь возможность добавлять изображения / галерею к сообщению через редактор администратора WordPress, но затем иметь функцию перетаскивания изображений, оборачивать их в 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 с
    класс «image-large», а затем второе изображение и завернуть его в
    div с классом «image-medium»?

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

РЕДАКТИРОВАТЬ

Я разобрался с вопросом 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, она осталась одна.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]