Пытаюсь сделать сортировку на сайте, по полю цены ACF ->
price
В поле
price чётко цифры без пробелов
Поле
price находится в группе
list
Post Type создан в CPT UI, назван gazgolder
Карточки товаров выводятся на обычной странице к которой подключен этот шаблон, не в категории
Форма сортировки
<form action="<?php echo 'https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; ?>" method="GET" >
<span>Сортировать по цене: </span>
<input type="hidden" name="cat" value="<?php get_the_category(); ?>">
<input type="hidden" name="paged" value="<?php echo $pageNum; ?>">
<input type="radio" id="sort_asc" name="sort" value="asc" onchange="this.form.submit()"><label for="sort_asc">По возрастанию</label>
<input type="radio" id="sort_desc" name="sort" value="desc" onchange="this.form.submit()"><label for="sort_desc">По убыванию</label>
<input type="radio" id="sort_none" name="sort" value="none" onchange="this.form.submit()"><label for="sort_none">Сбросить фильтр</label>
</form>
Вывод товаров с сортировкой
<?php
$all_terms = get_terms(array(
'taxonomy' => '',
'hide_empty' => 1,
'parent' => '0',
'orderby' => 'meta_value_num',
'meta_key' => 'price',
'paged' => get_query_var('paged'),
));
foreach ( $all_terms as $term ) { //внешний цикл
$query = new WP_Query( array(
'post_status' => 'publish',
'post_type' => 'gazgolder',
'posts_per_page' => -1,
'cat' => get_the_category(),
));
if ( ! $query->have_posts() ) continue;
while ( $query->have_posts() ) { # внутренний цикл
$query->the_post();
?>
Получаем данные из произвольных полей и выводим шаблон карточки
<?php if( have_rows('list') ): ?>
<?php while( have_rows('list') ): the_row();
// Цена
$price = get_sub_field('price');
?>
<div class="tovar__item">
<p>
<span class="solution_price"><?php the_sub_field('price'); ?></span>
</p>
</div>
</div>
<?php endwhile; ?>
<?php endif; ?>
<?php
}
} ?>
После выбора сортировки страница перезагружается, GET параметры в URL остаются, положение товаров не меняется.