Основной вид деятельности: поисковая оптимизация сайтов - внутренняя и внешняя.
В рамках экосистемы WP: php, js, css, vps (nginx, php-fpm, redis).

Наибольший вклад в теги

Все теги (3)

Лучшие ответы пользователя

Все ответы (5)
  • Как оптимизировать обращения к базе данных при получении вариации товара (выборе атрибута продукта)?

    gromel
    @gromel
    Комплексная оптимизация сайтов
    Еще есть один хитрый момент, касаемо опций на странице товара у которого больше 30 вариаций.

    Когда превышен определенный предел вариаций (30), WooCommerce просто отображает все опции, а не какие из них должны быть доступны. Поскольку динамическая загрузка большого количества данных может стать потенциальной проблемой производительности, поэтому стоит ограничение на 30 вариаций.

    Необходимо самостоятельно прописать максимальное кол-во, иначе будут глюки/сложности с данными требующие динамической обработки доступных вариаций.

    add_filter( 'woocommerce_ajax_variation_threshold', 'wc_inc_ajax_threshold_more', 10, 2 );
    function wc_inc_ajax_threshold_more($qty, $product) {
        return 150;//или больше...
    }
    Ответ написан
  • Как сделать категории всегда развернутыми?

    gromel
    @gromel
    Комплексная оптимизация сайтов
    1. Стандартный виджет Woo без управления выпадающего списка "открыть/закрыть". То, что у тебя на скрине — функционал темы, подключается, вернее всего, скриптом.
      Файл со скриптами темы, обычно можно найти по этому пути, имя файла может быть и другим: \themes\имя_темы\assets\js\main.js
      Если юзаешь поиск по файлам темы, то ищи что-то подобное:
      $('.widget_product_categories').addClass('toggle-menu');
      $('.toggle-menu ul.children, .toggle-menu ul.sub-menu').addClass('toggle-submenu');
      ...
      $('.widget_product_categories').each(function() {
       $(this).find('li').has('.children').has('li').prepend('<div class="open-this"></div>');
      ...

      Обрати внимание: "open-this" может быть и просто "open". Смотри какие блоки скрипт добавляет к виджету во фронтенде.

    2. Как найдешь код, то дальше дело техники. Например, так:
      $('.toggle-menu').each(function() {
        var $this = $(this);
        $this.find('.toggle-menu-current-item').last().parents('.toggle-menu-item-parent').addClass('opened').children('.toggle-submenu').show();
        $this.find('.current-cat').addClass('opened').children('.toggle-submenu').show();
        ...
       });

      Класс 'opened' для добавления своих стилей.

    3. Приправить немного юзер-френдли логикой по желанию. Например, при открытии другого списка, что бы предыдущий закрывался.
    Ответ написан