WordPress как на ладони
rgbcode is looking for WordPress developers.

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

Здравствуйте! Делаю слайдер на основе галереи 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
Гость
7.6 лет назад
  • 0
    Kama9473

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

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

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

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

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

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

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