Показать всю галерею изображений с помощью шорткода [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(),

Я надеюсь, что это поможет кому-то.

Другие вопросы по тегам