Сортировка записей по произвольному полю дата и время в WordPress

Сортировка записей по произвольному полю дата и время в WordPress

30 сентября 2019 WordPress

В статье Вывод записей с помощью WP_Query{} я уже показывал, как можно выводить записи по различным параметрам и как использовать простую сортировку постов. Недавно возникла задача вывода записей с доп.полем типа Дата и время и сортировка по нему. Про доп. поля в WordPress можно почитать в этой статье.

Список записей не что иное, как афиша мероприятий. Поэтому ещё одним условием было не выводить мероприятия, которые уже прошли, т.е. те, у которых дата установлена раньше текущего дня.

Собственно к записям было добавлено поле Дата и время через плагин ACF(Advanced Custom Fields). А вот код, которым получилось осуществить задуманное:

<?php 
	// задаем параметры выборки в массиве
	$args = array(
	'cat' => array(3,4), // ID рубрики
	'posts_per_page' => 8, // выводить по 8
	'meta_key' => 'date',
	'orderby' => 'meta_value_num date',
	'order' => 'ASC',
	'meta_type' => 'DATETIME',
	'meta_query' => array(
		array(
		    'key' => 'date',
		    'value' => date('Y.m.d H:i'),
		    'compare' => '>=',
		    'type' => 'DATETIME'
		)
	    ),
	);
// запрос
$query = new WP_Query( $args ); 

// далее цикл вывода постов

?>

Что здесь. Во-первых задаем ID рубрик, их здесь две, и выводим их по 8. Далее в meta_key задаем имя поля с датой, указываем сортировку по дате в orderby и ASC — по возрастанию. В meta_type указываем, что поле дата и время. Кулинарный форум Culinarie.ru

Чтобы не выводить записи до текущего дня в значении meta_queryопять же указываем key — это имя нашего поля, в value текущие дату и время и в compare знаки больше и равно. Что означает выводить только те записи, у которых дата и время больше или равны текущей дате. И в поле type указываем, что это поле дата и время.

Полный код примера:

<?php 
	// задаем параметры выборки в массиве
	$args = array(
	'cat' => array(3,4), // ID рубрики
	'posts_per_page' => 8, // выводить по 8
	'meta_key' => 'date',
	'orderby' => 'meta_value_num date',
	'order' => 'ASC',
	'meta_type' => 'DATETIME',
	'meta_query' => array(
		array(
		    'key' => 'date',
		    'value' => date('Y.m.d H:i'),
		    'compare' => '>=',
		    'type' => 'DATETIME'
		)
	    ),
	);
// запрос
$query = new WP_Query( $args ); 
?>
<?php if ( $query->have_posts() ) : ?>
  <!-- цикл -->
  <?php while ( $query->have_posts() ) : $query->the_post(); ?>
    <h1><?php the_title(); ?></h1>
  <?php endwhile; ?>
  <!-- конец цикла -->
  <?php wp_reset_postdata(); //очищаем результат запроса?>
<?php else : ?>
  <p><?php esc_html_e( 'Ничего не найдено.' ); ?></p>
<?php endif; ?>

Если вам понравилась статья, вы можете отблагодарить автора любой суммой, какую сочтете для себя приемлемой:
Остались вопросы по статье? Задайте их прямо сейчас!
Перенос сайта на WordPress на другой домен

В повседневной работе часто приходится сталкиваться с переносом сайта на Wordpress с локального или тестового домена на основной. Для этого необходимо не только скопировать файлы, базу данных и поменять настройки в конфигурационном файле, но и сделать ряд SQL-запросов, чтобы прописать Читать далее

Правильный файл robots.txt для WordPress 2019

Самый оптимальный и простой код файла robots.txt для вашего сайта на WordPress, который подойдет для всех поисковиков. Этот вариант использую на данном сайте. Не забудьте заменить it-blog.ru на адрес вашего сайта. Содержание файла robots.txt для WordPress Если вы используете HTTPS, Читать далее

Произвольные типы записей WordPress

Произвольные типы записей позволяют разделить посты не только по категориям, но и по их типу с собственными названиями и рубриками. Это что-то типо инфоблока, как в CMS 1С-Битрикс. По умолчанию в WordPress есть возможность добавлять записи и их рубрики. К Читать далее

Произвольные поля WordPress

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

Создание плагина WordPress с нуля

Когда я создавал свой первый плагин, то оказалось, что в сети очень мало информации по этому вопросу. С трудом удалось найти даже основы. Надеюсь эта статья поможет вам научиться писать различные плагины для WordPress. Наверняка вы уже пользовались и знаете, Читать далее

WordPress Ajax

По большей части публикации про применение Ajax в WordPress сложные для понимания, особенно если вы мало знакомы с этой технологией. В этой статье я покажу, как на самом деле просто использовать Ajax в публичной части сайта. Ajax запросы в WordPress Читать далее

WordPress подгрузка постов кнопкой показать еще или бесконечным скроллом

Кнопка "Показать ещё" и бесконечный скроллинг - это по сути постраничная навигация, которая подгружает следующую страницу с постами без перезагрузки страницы. Подобные примеры часто можно встретить в лентах соц. сетей. В этом примере показана реализация кнопки "Показать ещё" и бесконечного Читать далее

Добавить комментарий