Здравствуйте!
Есть ряд мероприятий, я делаю для каждого свою запись в определенной рубрике.
Мероприятия выводятся в столбцах слева направо: 22 мая, 25 мая, 28 мая
Вопрос: как вывести 3 последних события и отсортировать их по возрастанию.
То есть, если я вывожу просто 3, то они идут наоборот 28 мая, 25 мая, 22 мая.
Если я сортирую наоборот, то выводятся события, которые уже давно прошли.
Пока нашел такое решение:
<?php
function filter_where($where = '') {
//posts in the last 30 days
$where .= " AND post_date > '" . date('Y-m-d', strtotime('-3 days')) . "'";
return $where;
}
add_filter('posts_where', 'filter_where');
query_posts("posts_per_page=3&order=ASC"); ?>
<?php while ( have_posts() ) : the_post(); ?>
<div class="span3">
<p><span class="label label-warning"><?php echo get_post_meta($post->ID, 'Дата', true); ?></span></p>
<h3><?php the_title(); ?></h3>
<p><?php the_content(); ?></p>
</div>
<?php endwhile; wp_reset_query(); ?>
Но проблема в том, что события не всегда каждый день, а значит будет такой день, когда будет выводится 1-2 события из-за окна.
Нет идей?
Возможно, есть способ сортировки внутри сортировки?
Можно в основном цикле получить ID материалов и их даты, скинуть их в связанный массив и отсортировать его по дате. После через id постов вывести их. Но это так в лоб… Может у ВП все же есть свои средства ><
Попробуй вывести просто три по убыванию, но внутри лупа оберни каждое мероприятие в див, которому назначь float:right. Тогда первым выведется мероприятие за 28 мая и убежит направо. Следом выведется за 25 мая, и тоже убежит направо, но не дальше первого, таким образом визуально будет выглядеть левее. Ну и т.д.