Как настроить список событий в Wordpress, чтобы стереть событие, как только дата прошла - PullRequest
0 голосов
/ 19 декабря 2010

В настоящее время у меня есть некоторые настройки кода для отображения предстоящих событий, установленных администратором в зависимости от даты события.Предстоящие события сортируются по следующему предстоящему событию, начиная сверху и затем спускаясь вниз.Я ограничил его только двумя.

Но когда наступает начало дня (например, полночь даты события), событие исчезает. Я бы хотел, чтобы событие все еще показывалось до полуночи следующего дня (например, начало следующего дня). Прямо сейчас событие исчезает, когда наступает день события ...

Кто-нибудь знает, как изменить это с моим текущим кодом?

<div class="boxer events">
<h3>Upcoming Events</h3>
<?php
//The Query
query_posts(array(
'posts_per_page' => 2,
'meta_key' => 'event_date',
'meta_value' => date('Y-m-d'),
'meta_compare' => '>',
'orderby' => 'meta_value',
'order' => 'ASC'
));

//The Loop
$count = 0;
while ( have_posts() ) : the_post(); $count++;
//The Title
$title = $post->post_title;
$event_datee = get_post_meta($post->ID, 'event_date', true);
?>
<dl>
<dt><a title="<?php echo $title; ?>" href="<?php the_permalink(); ?>"><?php echo $title; ?></a></dt>
<div class="postdate">
<div class="month m-<?php $dtes = get('event_date'); $timestamp = strtotime($dtes); echo date('n', $timestamp); //month ?>"></div>
<div class="day d-<?php $dtes = get('event_date'); $timestamp = strtotime($dtes); echo date('d', $timestamp); //day ?>"></div>
<div class="year y-<?php $dtes = get('event_date'); $timestamp = strtotime($dtes); echo date('Y', $timestamp); //year ?>"></div>
</div>
<dd><?php the_excerpt(); ?></dd>
</dl>
<?php endwhile; ?>
</div><!--end boxerevents-->

Спасибо за вашу помощь!

Ответы [ 2 ]

1 голос
/ 19 декабря 2010

Сравнение по запросу смотрит на дату с сегодняшнего дня date('Y-m-d')

Вместо этого вы можете сказать, чтобы он использовал завтра, как и сегодня, используя вчерашнюю дату. Попробуйте заменить date(...) на date('Y-m-d', strtotime('-1 day'))

Примечание: я думаю, вам нужно использовать -1 здесь, но вместо этого может потребоваться +1.

Я также думаю, что вы могли бы просто поменять 'meta_compare' => '>', на 'meta_compare' => '>=', , заметьте, что > изменился на > = , в этом случае вы оставил бы часть date(...) как есть, но это зависит от того, как этот плагин хранит даты.

0 голосов
/ 19 декабря 2010

Моя лучшая догадка из вашего кода: эта область:

<?php
//The Query
query_posts(array(
'posts_per_page' => 2,
'meta_key' => 'event_date',
'meta_value' => date('Y-m-d'),
'meta_compare' => '>',
'orderby' => 'meta_value',
'order' => 'ASC'
));

Похоже, что она извлекает события (не удаляя их), и поэтому НЕ ПОЛУЧАЕТ васстарые события, только текущие date('Y-m-d') и далее.

Но опять же, это обоснованное предположение, не имеющее никакого смысла в этом «событии» / плагине.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...