• Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!

Решено Не сортируется товар вообще

DanilBL

Новичок
#1
Здравствуйте! Достался мне сайт, который меня устраивает, но есть один косяк... Не работает сортировка по алфавиту (по имени). Мне не нужно, чтобы я мог выбирать в поле с вариантами сортировки, а просто чтоб из базы данных выводилось уже сортированный по алфавиту и все.
Все сортируется хорошо (меню, категории), а вот товар не хочет!
Перелопатил информации вагон... Не знаю в чем дело. Последняя надежда на Вас!!!
Вот ссылка на каталог - goo.gl/3BQI0B
Вот часть кода, который выводи товар (orderby, делал разный: title, name, date и вплоть до бреда)
Если еще, что-то нужно, скажите....
Код:
<div class="col-md-9">

<?php   
if ($models_parts) {
            $_pf = new WC_Product_Factory(
            array (
            'orderby'=> 'title',
            'order' => 'ASC'
            ));   
           
            foreach( $models_parts as $part_id ) :   
                if ($cur_count==$count_parts_per_page) {
                    $cur_count=1;
                    $find_page++;
                }
                else {
                    $cur_count++;
                }
                if ($find_page==$need_page)
                {
                    $_product = $_pf->get_product($part_id);
                    $price = get_post_meta($_product->post->ID, '_regular_price');
                                   
                        $linknext=get_site_url().'/detailpart/?';
                        if ($brand_id!=0) $linknext=$linknext.'brandid='.$brand_id.'&';
                        if ($model_id!=0) $linknext=$linknext.'modelid='.$model_id.'&';
                        if ($year_id!=0) $linknext=$linknext.'years='.$year_name;                   
                    ?>   
                    <div class="col-md-4">
                        <a href="<?php echo $linknext.'&partid='.$_product->post->ID; ?>">
                        <div class="part-block solid-block2">                           
                            <?php echo get_the_post_thumbnail($_product->post->ID, array(200,200)); ?>
                            <h1><?php echo $_product->post->post_title; ?></h1>

<?php $type = get_post_meta($part_id, 'type'); ?>
<?php echo $type[0]; ?>

                        </div>
                        </a>
                        <div class="part-button-block">
                            <div class="price-block">
                                <span><?php if ($price[0]) {echo $price[0].'р';}?></span>
                            </div>
                            <div class="button-open-block">
                                <a href="<?php echo $linknext.'&partid='.$_product->post->ID; ?>" style="float:left" id="link<?php echo $cur_count; ?>">
                                    <div class="button-order">Подробнее</div>
                                </a>
                            </div>
                        </div>
                    </div>
                    <?php               
                }       
            endforeach;
            ?>
            </div>
Скажу сразу и честно. Я еще совсем зеленый в этой теме. Только учусь. Но, мне это очень интересно!))
 

vsg

Новичок
#3
А вот и ответ

$args = array(
'post_type' => 'product',
'orderby' => 'post_title',
'order' => 'ASC'
);

$_pf = new WC_Product_Factory($args);

$count = count($models_parts);
for ($i = 0; $i < $count - 1; $i++) {
for ($j = $i + 1; $j < $count; $j++) {
$product1 = $_pf->get_product($models_parts[$i]);
$product2 = $_pf->get_product($models_parts[$j]);
if ($product1->post->post_title > $product2->post->post_title) {
$c = $models_parts[$i];
$models_parts[$i] = $models_parts[$j];
$models_parts[$j] = $c;
}
}
}

foreach( $models_parts as $part_id ) :
-----------------------------------------------------------------------
ну и так далее... реализована обычная сортировка пузырьковым методом :)
 

DanilBL

Новичок
#4
Спасибо! Вопрос актуален. Буду пробовать то что вы предложили. Огромное спасибо