Показать всю галерею изображений с помощью шорткода [gallery]
Я хочу отобразить изображения из почтовой галереи с помощью "галереи". Как это:<?php echo do_shortcode('[gallery]'); ?>
После некоторого поиска я узнал, что нам нужно использовать функцию "preg_match", чтобы получить идентификаторы галереи изображений. Что-то вроде того:
$post_content = $post->post_content;
preg_match('/\[gallery.*ids=.(.*).\]/', $post_content, $ids);
$array_id = explode(",", $ids[1]);
Но я не знаю, как это использовать... Я новичок, и мне довольно сложно это использовать. Должен ли я поместить этот код в мой файл функций? Если да, то как я могу это сделать, пожалуйста?
Цель состоит в том, чтобы поставить окончательный код так: <?php echo do_shortcode( '[gallery ids="$array_id"]' ); ?>
Спасибо и извините за мой английский!!!
1 ответ
Я нашел решение, поэтому я делюсь этим с вами. Может быть, кому-то это будет интересно.
Я изменил следующий код:
$post_content = $post->post_content;
preg_match('/\[gallery.*ids=.(.*).\]/', $post_content, $ids);
$array_id = explode(",", $ids[1]);
В:
<?php
global $post;
$post_content = $post->post_content;
preg_match('/\[gallery.*ids=.(.*).\]/', $post_content, $ids);
$images_id = explode(",", $ids[1]);
echo do_shortcode('[gallery type="slideshow" ids="'. implode(',', array_slice($images_id, 0, 3)).' ,"]');
?>
И я вставил это в свой обычай format-gallery.php
и это работает так хорошо. Обратите внимание, что я автоматически ограничил количество идентификаторов, возвращаемых с array_slice()
,
Я надеюсь, что это поможет кому-то.