@Bearax

Как сделать товары без изображений в конец списка?

Всем привет. Нужно сделать так, чтобы товары без изображений были в конце списка? Подскажите пожалуйста может кто-то раньше сталкивался с такой задачей и как можно это реализовать?
  • Вопрос задан
  • 92 просмотра
Пригласить эксперта
Ответы на вопрос 1
@easycode
не боюсь задавать глупые вопросы ))
В get_posts юзать fields => ids, чтобы на выходе был не огромный массив объектов (постов), а простой массив id-шников - всё равно кроме id больше ничего не нужно будет в цикле - экономия памяти!
заюзать WP-CLI для того чтобы всю эту обработку реордеинга запустить первый раз

ну и далее можно навесить hook например на save_post, который будет проверять загружен ли thumbnail для товара и если да - то реордерить позицию товара

можно еще разобраться в том где и как в таблицах WordPress'а хранится связка между постом (товаром) и главным его изображением (thumbnail) и соотв. через хук для фронт-части сайта изменить главный query-запрос с учетом этой сортировки

я вот менял сортировку кастомной таксономии в админке - по похожему принципу:

add_filter( 'terms_clauses', function ( $pieces, $taxonomies, $args ) {
    global $pagenow, $wpdb;
    if ( is_admin() && $pagenow == 'edit-tags.php' && $taxonomies[0] == 'program_session' ) {
        $pieces['join']  .= ' INNER JOIN ' . $wpdb->termmeta . ' AS tm ON t.term_id = tm.term_id ';
        $pieces['where'] .= ' AND tm.meta_key = "program_session_start"';
        $pieces['orderby']  = ' ORDER BY tm.meta_value ';
    }
    return $pieces;
}, 10, 3 );


у вас другой случай - но подход возможно похожий https://wp-kama.ru/hook/posts_clauses

UPD: по-моему вот ответ на ваш вопрос: https://stackoverflow.com/questions/15956135/how-c...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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