Visual Composer Post Grid Пользовательский запрос Сегодня Дата

Я использую визуальный композитор http://vc.wpbakery.com/ на моем сайте WordPress.
Моя проблема в пользовательском запросе сетки сообщений.

В основном я выбираю все предстоящие события (событие типа пост), где дата окончания события (настраиваемое поле)> = сегодня.

Моя строка запроса (без экранирования):

paged=1&posts_per_page=-1&offset=0&post_status=publish&ignore_sticky_posts=0&orderby=meta_value&order=DESC&post_type[event]=event&meta_key=event-end-date&meta_query[0][key]=event-end-date&meta_query[0][value]=2016-09-20&meta_query[0][compare]=>=&meta_query[0][type]=DATE

Меня раздражает то, что сегодняшняя дата установлена ​​на: 2016-09-20.
Теперь каждый раз, когда проходит событие, я должен вручную обновлять эту дату, чтобы событие больше не отображалось в предстоящем списке.

Есть ли возможность задать изменяющееся значение, например, сегодняшнюю дату, в строке запроса WordPress?

VC позволяет мне только вставлять строку запроса, поэтому я не могу работать с переменными, за исключением того, что есть некоторый механизм, который позволяет мне заменить какое-то ключевое слово шаблона текущей датой.

Или есть какой-то другой способ, как я могу фильтровать предстоящие события, такие как использование тегов, публикация мета значений и т. Д.?

— Решено —

  • обновлять события каждые 12 часов
  • обновить события, если сохранены

functions.php

add_filter('cron_schedules', 'my_cron_schedules');
function my_cron_schedules( $schedules ) {
$schedules['halfday'] = array(
'interval' => 43200,
'display' => __('halfday')
);
return $schedules;
}

if ( !wp_next_scheduled( 'my_halfday_event' ) ) {
wp_schedule_event( time(), 'halfday', 'my_halfday_event' );
}
add_action('my_halfday_event', 'update_events');

function save_event( $post_id ) {
$post_type = get_post_type( $post_id );
if ( $post_type != 'event' ) {
return;
}
update_events();
}
add_action( 'save_post', 'save_event' );

function update_events() {
$events = get_posts( array(
'posts_per_page' => -1,
'post_type' => 'event'
) );
foreach( $events as $event ) {
$event_end_date = get_post_field( 'event-end-date', $event->ID );
if ( is_wp_error( $event_end_date ) ) {
continue;
}
$today = current_time('Y-m-d');
$event_expired = $event_end_date < $today ? 'true' : 'false';
$event_updated = current_time('Y-m-d H:i:s');
update_post_meta($event->ID, 'event-expired', $event_expired);
update_post_meta($event->ID, 'event-updated', $event_updated);
}
}

новый запрос

paged=1&posts_per_page=-1&offset=0&post_status=publish&ignore_sticky_posts=0&orderby=meta_value&order=DESC&post_type%5Bevent%5D=event&meta_key=event-end-date&meta_query%5B0%5D%5Bkey%5D=event-expired&meta_query%5B0%5D%5Bvalue%5D=false&meta_query%5B0%5D%5Bcompare%5D=%3D&meta_query%5B0%5D%5Btype%5D=CHAR

0

Решение

Некоторое время назад я столкнулся с той же проблемой и использовал DATE = $ сегодня в своем пользовательском запросе, и он отлично работает. Посмотрите на проблему и решение, размещенное здесь: Пользовательский запрос Visual Composer с оператором ИЛИ

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]