Изменение количества колонок товаров на главной странице WooCommerce
Я ищу ответ уже несколько дней. Перепробовал все возможные сниппеты, изменял файлы функций, создавал отдельный шаблон для контента товаров, но не могу изменить количество отображаемых товаров. Сейчас WooCommerce показывает 4 товара в строке, добавляя к четвертому товару CSS-класс "last". Мне нужно отображать по 3 товара в строке.
Вот ссылка на текущий магазин: http://teamhappiness.org/store/
Вы не указали, какие именно сниппеты пробовали, но согласно документации, вы можете фильтровать 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 );

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

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

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

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

Ребята, я искал решение этой же проблемы и только что нашел ответ! В моем случае это вообще не связано с файлом 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 товаров.

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