Изменение количества колонок товаров на главной странице WooCommerce

18 сент. 2012 г., 17:44:08
Просмотры: 14.5K
Голосов: 1

Я ищу ответ уже несколько дней. Перепробовал все возможные сниппеты, изменял файлы функций, создавал отдельный шаблон для контента товаров, но не могу изменить количество отображаемых товаров. Сейчас WooCommerce показывает 4 товара в строке, добавляя к четвертому товару CSS-класс "last". Мне нужно отображать по 3 товара в строке.

Вот ссылка на текущий магазин: http://teamhappiness.org/store/

0
Все ответы на вопрос 2
6

Вы не указали, какие именно сниппеты пробовали, но согласно документации, вы можете фильтровать loop_shop_columns следующим образом:

function wpa65503_woo_shop_columns( $columns ) {
    return 3;
}
add_filter( 'loop_shop_columns', 'wpa65503_woo_shop_columns' );

Проверено и работает у меня с темой Twenty Eleven.

ОБНОВЛЕНИЕ - вот конкретная строка в стандартном файле шаблона content-product.php, которая делает возможным работу этого фильтра. Вы можете установить значение напрямую, если используете кастомный шаблон и не нуждаетесь в фильтрации:

// Сохраняем количество колонок для отображения сетки
if ( empty( $woocommerce_loop['columns'] ) )
    $woocommerce_loop['columns'] = apply_filters( 'loop_shop_columns', 4 );
18 сент. 2012 г. 19:51:02
Комментарии

Только что добавил этот код, но по-прежнему отображается 4 колонки.

Martin Hasan Martin Hasan
18 сент. 2012 г. 21:35:43

куда вы его добавили? в functions.php вашей темы? если по-прежнему отображается 4 колонки, значит где-то еще в вашей теме задано количество колонок.

Milo Milo
18 сент. 2012 г. 21:42:32

Я изменил это в functions.php темы и создал файл шаблона для content-product.php

Martin Hasan Martin Hasan
18 сент. 2012 г. 22:47:07

Применяет ли ваш файл шаблона фильтр? См. правку выше.

Milo Milo
19 сент. 2012 г. 01:33:46

Да, то же самое. Должно быть что-то, что его перезаписывает...

Martin Hasan Martin Hasan
19 сент. 2012 г. 01:42:56

проверьте глобальную переменную $wp_filter или выполните поиск по всей теме для хука фильтра loop_shop_columns.

Milo Milo
19 сент. 2012 г. 01:58:42
Показать остальные 1 комментариев
2

Ребята, я искал решение этой же проблемы и только что нашел ответ! В моем случае это вообще не связано с файлом content-product.php, а касается файла woocommerce > single-product > related.php. Создайте шаблон этого файла (если вы не знаете, как переопределить шаблон WooCommerce, изучите это) и найдите этот код:

$args = apply_filters('woocommerce_related_products_args', array(
'post_type'             => 'product',
'ignore_sticky_posts'   => 1,
'no_found_rows'         => 1,
'posts_per_page'        => $posts_per_page,
'orderby'               => $orderby,
'post__in'              => $related
) );

Все, что вам нужно сделать — это изменить переменную

$posts_per_page

на то количество связанных товаров, которое вы хотите отображать! Например:

'posts_per_page'        => 10,

будет отображать 10 товаров.

27 дек. 2012 г. 12:11:19
Комментарии

Имейте в виду, что это решение может потребовать повторного изменения файла после обновления WooCommerce.

fischi fischi
27 дек. 2012 г. 12:41:26

Нет необходимости копировать файл шаблона для этого изменения. Видите фильтр woocommerce_related_products_args в начале? Вот куда вам нужно подключиться, чтобы переопределить параметр posts_per_page.

Geert Geert
27 дек. 2012 г. 12:49:13