Я знаю, как добавить изображение и галерею. Мне нужно, чтобы одно изображение из камбуза отображалось на странице случайным образом каждый раз, когда страница загружается.
На странице должно отображаться только одно изображение за раз.
Есть ли плагин или короткий код для этого? Я знаю, как сделать галерею случайной, но они показывают все изображения.
Ответ :
$args = array(
'post_type' => 'attachment',
'numberposts' => 1,
'orderby' => 'rand',
'post_status' => null,
'post_parent' => get_the_ID(),
'post_mime_type' => 'image'
);
have_posts(); //must be in the loop
the_post(); //set the ID
$images = get_children( $args );
if ($images) {
foreach ( $images as $attachment_id => $attachment ) {
echo wp_get_attachment_image( $attachment_id, 'full' );
}
}
wp_reset_query();
Вы должны использовать
'orderby' => 'rand'
параметр дляget_children()
функции вложений.Например:
это работает, но добавляет изображение из библиотеки, а не из галереи. Мне нужно, чтобы это было из галереи, поэтому каждый набор отличается от страницы к странице.
ваш пост и этот решают проблему stackoverflow.com/questions/2640520/…
Вы также можете получить идентификаторы из ВСЕХ галерей на странице
get_post_galleries()
, и вам не нужен дополнительный цикл.Ссылка
list()
shuffle()
get_post_galleries()
wp_list_pluck()
explode()
implode()
array_unique()
get_the_ID()
wp_get_attachment_image()