2015-07-27 3 views
0

Я хочу отобразить изображения из галереи сообщений с помощью «галереи». Например: <?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"]'); ?>

Спасибо и извините за мой английский !!!

ответ

0

Я нашел решение, поэтому я поделился этим с вами. Может быть, кому-то это будет интересно.

Я изменил следующий код:

$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().

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

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