WordPress как на ладони
wordpress jino

Сортировка изображений при модификации стандартной галереи

Здравствуйте! Делаю слайдер на основе галереи WP. Но не знаю как сделать чтоб работала сортировка. Пока этот код ставит в начале последнюю загруженную фотографию и так по возрастанию. Как модифицировать, чтоб работала сортировка?

Код из functions.php

function gallery_slider($output, $attr) {
  $ids = explode(',', $attr['ids']);
  $images = get_posts(array(
	'include' => $ids,
	'post_status' => 'inherit',
	'post_type' => 'attachment',
	'post_mime_type' => 'image'
  ));
  if ($images) {
	$output = gallery_slider_template($images);
	return $output;
  }
}
add_filter('post_gallery', 'gallery_slider', 10, 2);

function gallery_slider_template($images) {
  ob_start();
  include 'gallery-slider.php';
  $output = ob_get_clean();
  return $output;
}

Код из gallery-slider.php

<!--noindex--><div class="disable-slider"><button class="button button--toggle">Отключить / Включить слайдер</button></div><!--/noindex-->
<div class="slider">
<?php
foreach ($images as $image) {
  $src = wp_get_attachment_url($image->ID); // ссылка на изображение
  $alt = get_post_meta($image->ID, '_wp_attachment_image_alt', true); // атрибут alt
  $caption = $image->post_excerpt; // подпись к изображению
?>
	<div class="gallery-cell">
		<div class="gallery-bd">
			<img src="<?php echo $src; ?>" alt="<?php echo $alt; ?>" />
			<p><?php echo $caption; ?></p>
		</div>
	</div>
<?php } ?>
</div>
0
Гость 1.7 года назад
  • 0
    Kama4558

    Установите параметр orderby и order

      $images = get_posts(array(
    	'include' => $ids,
    	'post_status' => 'inherit',
    	'post_type' => 'attachment',
    	'post_mime_type' => 'image',
    	'orderby' => 'title',
    	'order' => 'ASC',
      ));

    Все возможные аргументы тут, а лучше смотрите тут.

    • author - Сортировать по ID авторов.
    • category - Сортировать по ID категорий.
    • content - Сортировать по контенту.
    • date - Сортировать по дате создания записи.
    • ID - Сортировать по ID самой записи. С версии 2.5.
    • menu_order - Сортировать по полю menu_order. Используется для постоянных страниц и вложений (картинки, файлы и т.п.).
    • mime_type - Сортировать по MIME типу. Используется для вложений.
    • modified - Сортировать по дате изменения.
    • name - Сортировать по альтернативному имени (slug).
    • rand - Случайная сортировка. С версии 2.5. Создает повышенную нагрузку на БД.
    • status - Сортировать по статусу (черновик, опубликовано и т.п.)
    • title - Сортировать по названию.
    • parent - Сортировать по ID родителя (parent ID).
    • password - Сортировать по паролю.
    • type - Сортировать по типу (пост, страница и т.д. ).
    • comment_count - по количеству комментариев (с версии 2.9).
    • meta_value - по значению указанного произвольного поля.
      По умолчанию: 'post_date'
    stahov 1.7 года назад

    Да, я пробовал, но не работало так как нужно.
    Шорткод следующий:

    [gallery size="full" ids="713,714,715,716,717,719,720,721,722,723"]

    Нужно выводить по порядку ids, поэтому сработал

    'orderby' => $ids,
    Комментировать
  • 0

    К этому всему подключаем flickity http://flickity.metafizzy.co и получаем один из самых продвинутых и простых в настройке адаптивных сладеров.

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Регистрация. Вход.