Intereting Posts
Любое понимание блокировки Transient API, cron и threading? Как изменить форматирование HTML ссылки oEmbed? Как предотвратить добавление кэшированных сообщений в кеш? Добавление класса body с ACF Colorbox не работает в собственной галерее WordPress, когда галерея загружается через AJAX Последнее сообщение в цикле – пользовательские типы сообщений Мне не нужна страница «просмотра» для моей пользовательской таксономии WordPress выбирает неправильный шаблон для персонализированной страницы типа архива Иерархия в многоузловом пространстве Как добавить пользовательскую кнопку подписки в настраиваемый тип сообщения? отображаемый URL-адрес или постоянная ссылка вместо заголовка страницы на панели управления Ошибка при импорте csvwith default post post WP Что было бы командой PHP для удаления всех сообщений из категории X за последний месяц? Динамическое получение тегов на экране редактирования сообщений можно ли добавить новый шаблон в тему двадцать семнадцать?

Получать сообщения, обновленные или опубликованные за последние шесть часов

Хорошо, я пытаюсь получить сообщения, которые были опубликованы в течение последнего х раз, а варианты – 8, 24 или 72 часа. У меня есть переменные, которые передаются в my featureHandler.php через ajax, а затем возвращают сообщения, вот как я это делаю:

$vars = $_GET['vars']; $time = $vars[0]; $order = $vars[1]; if ($time == 8 ) { function filter_where($where = '') { //posts in the last 8 Hours $where .= " AND post_date > '".date('Ymd H:i:s', strtotime('-8 hours'))."'"; return $where; } add_filter('posts_where', 'filter_where', 10, $time); } elseif ($time == 24) { function filter_where($where = '') { //posts in the last 24 Hours $where .= " AND post_date > '".date('Ymd H:i:s', strtotime('-24 hours'))."'"; return $where; } add_filter('posts_where', 'filter_where', 10, $time); } elseif ($time == 72) { function filter_where($where = '') { //posts in the last 72 Hours $where .= " AND post_date > '".date('Ymd H:i:s', strtotime('-72 hours'))."'"; return $where; } add_filter('posts_where', 'filter_where', 10, $time); } ?> <div class="article-wrapper"> <?php query_posts(array( 'post__not_in' => get_option('sticky_posts'), )); $itemCount = 0; while ( have_posts() ) : the_post(); 

Я думаю, что это полурабочее, за исключением того, что сообщение, которое я только что создал, отображается только в 24 или 72, но не в случае, когда $ time == 8, почему? И как я могу сделать этот код более эффективным?

Спасибо SINCERELY.

Solutions Collecting From Web of "Получать сообщения, обновленные или опубликованные за последние шесть часов"

вот более короткая версия, которая предполагает параметр GET : time = [integer] (например, time = 8)

 add_filter('posts_where', 'filter_where', 11); function filter_where($where = '') { if(isset($_GET['time'])){ $time = $_GET['time']; $time=(int)$time; // only allow integers if(in_array($time,array(8,24,72))){ $where .= " AND post_date > '".date('Ymd H:i:s', strtotime('-".$time." hours'))."'"; } } return $where; }