Zheleznov
@Zheleznov

Где ошибка в сортировке товаров по произвольному полю ACF, Wordpress?

Пытаюсь сделать сортировку на сайте, по полю цены 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 остаются, положение товаров не меняется.
  • Вопрос задан
  • 32 просмотра
Пригласить эксперта
Ответы на вопрос 1
@JJCorsten
явно ошибка в пустой таксономии
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы