WordPress как на ладони
WordPress Meetup #4. Встречаемся в Москве 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
Гость
2.4 года назад
  • 0
    Kama5403

    Установите параметр 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 2.4 года назад

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

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

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

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

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

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