Сортировка записей по произвольному полю дата и время в 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. Код можно использовать и для других разделов сайта. Надо только указать ID родительской рубрики. Вывод подрубрик в текущей рубрике <?php $cat = get_query_var('cat'); // получаем ID текущей рубрики $categories = Читать далее

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

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

Как установить WordPress: полное руководство для начинающих

Это полное пошаговое руководство для начинающих, которое поможет вам создать свой первый сайт на WordPress на любом веб-хостинге или локальном сервере. Почему WordPress? WordPress является самой популярной платформой для создания веб-сайтов. На сегодняшний день её используют 59% всех веб-сайтов созданных Читать далее

WordPress создание темы с нуля

Давно хотел написать подробное руководство о том, как создать тему на WordPress с нуля. Вам это пригодится: если вы хотите научиться разрабатывать сайты на WP, а не просто устанавливать шаблонные решения; вы хотите сделать уникальный дизайн для своего сайта или Читать далее

Как создать виджет WordPress

Виджеты используются для добавления контента на страницу WordPress без изменения шаблонов тем. Боковая панель является областью по умолчанию для добавления содержимого виджетов. Также вы можете зарегистрировать собственную область виджетов и добавить в нее виджеты. WordPress содержит некоторые виджеты по умолчанию Читать далее

Оптимизация WordPress

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

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

*

code