WordPress+ACF сортировка и вывод записей с фильтром по произвольным полям

Задача: вывести записи с сортировкой по дате указанной в произвольном поле плагина ACF.


Представим, у вас много записей, каждая запись имеет поле datepicker и вам нужно вывести на главной странице последние записи, но не по дате публикации записи вордпресса, а по дате, указанной в datepicker плагина ACF.

Используем следующий код:

<? $args = array( 'meta_key' => 'datepicker', // ключ поля ACF
'orderby' => 'meta_value_num',
'showposts' => '5', // кол-во выводимых записей
'cat' => '14', // ID категории, откуда вывести записи
'order' => 'ASC' // Порядок сортировки записей
);
$the_query = new WP_Query( $args ); if ( $the_query->have_posts() ) { ?>
// start
<!--?php while ( $the_query->have_posts() ) { $the_query->the_post(); ?-->
// вывод одной записи
<!--?php } ?-->
// end
<!--?php } else { ?-->
<!--?php } ?-->
<!--?php wp_reset_postdata(); ?-->

Сортировка и вывод записей в категории по значению произвольного поля ACF. Для того, чтобы отсортировать все записи указанной категории не по дате публикации записи вордпресс, а по значению произвольного поля ACF у записи, добавил нижеприведенный код в файл functions.php вашей темы:

// Сортировка и вывод записей категории по значению произвольного поля ACF
add_action('pre_get_posts', 'my_pre_get_posts', 10, 1);
function my_pre_get_posts($query)
{
if ($query->query['category_name'] == 'blog') { // вместо 'blog' указываем ID нужной категории
$query->set('orderby', 'meta_value_num');
$query->set('order', 'DSC'); // порядок сортировки
}
if ($query->query['category_name'] == 'events') { // вместо 'events' указываем ID нужной категории
$query->set('meta_key', 'datepicker'); // сортировка по произвольному полю
$query->set('orderby', 'meta_value_num');
$query->set('order', 'ASC'); // порядок сортировки
}
$query->set('meta_query', $meta_query);
}

Другие публикации

Представляю вашему вниманию пожалуй самые необходимые аддоны для WordPress и плагина Advanced Custom Fields совершенно бесплатно, как мы любим. Repeater, Gallery и Option Page.

05.04.2015

Градиент можно сделать конечно же в Photoshop, но иногда можно обойтись и CSS. Сервис предлагает пользователю в режиме онлайн создать необходимый ему градиент, после вам необходимо будет всего-лишь скопировать код и применить его к своему элементу.

13.11.2014

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

17.11.2014

Задача с виду очень простая, но я покажу как отобразить только подкатегории и подстраницы родительского пункта без использования стандартного меню. В некоторых проектах – это просто необходимо.

Задача: Показать сообщение пользователю об успехе или некорректной отправки сообщения во всплывающем окне Fancybox3.

24.06.2018