Cambiar el número de columnas en la página de inicio de WooCommerce

18 sept 2012, 17:44:08
Vistas: 14.5K
Votos: 1

He estado buscando una respuesta durante un par de días. He probado todos los fragmentos de código posibles, cambiando los archivos de funciones, creando una plantilla separada para content-products pero no puedo cambiar el número de productos mostrados. Actualmente WooCommerce muestra 4 productos por fila, añadiendo una clase CSS de "last" a ese cuarto producto. Quiero mostrar los productos en una línea de tres productos.

Aquí está la URL de la tienda actual: http://teamhappiness.org/store/

0
Todas las respuestas a la pregunta 2
6

No mencionaste qué fragmentos de código has probado, pero según la documentación, puedes filtrar loop_shop_columns de la siguiente manera:

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

Probado y funcionando para mí con el tema Twenty Eleven.

EDITADO - esta es la línea específica en el archivo de plantilla predeterminado content-product.php que hace que el filtro anterior funcione. Podrías configurarlo directamente si estás usando un archivo de plantilla personalizado y no necesitas que sea filtrable:

// Almacenar el conteo de columnas para mostrar la cuadrícula
if ( empty( $woocommerce_loop['columns'] ) )
    $woocommerce_loop['columns'] = apply_filters( 'loop_shop_columns', 4 );
18 sept 2012 19:51:02
Comentarios

Acabo de agregar ese código pero todavía muestra 4 columnas.

Martin Hasan Martin Hasan
18 sept 2012 21:35:43

¿dónde lo agregaste? ¿en el functions.php de tu tema? si todavía muestra 4 columnas entonces hay algo más en tu tema que está configurando el número de columnas.

Milo Milo
18 sept 2012 21:42:32

Lo cambié en el functions.php del tema y he creado un archivo de plantilla para content-product.php

Martin Hasan Martin Hasan
18 sept 2012 22:47:07

¿Tu archivo de plantilla aplica el filtro? Mira la edición arriba.

Milo Milo
19 sept 2012 01:33:46

Sí, lo mismo. Tiene que haber algo sobrescribiéndolo...

Martin Hasan Martin Hasan
19 sept 2012 01:42:56

Inspecciona la variable global $wp_filter o haz una búsqueda en todo el tema del hook de filtro loop_shop_columns.

Milo Milo
19 sept 2012 01:58:42
Mostrar los 1 comentarios restantes
2

Hola chicos, estaba buscando sobre el mismo problema; ¡acabo de encontrar la solución! No involucra el archivo content-product.php en absoluto (al menos en mi caso), involucra el archivo woocommerce > single-product > related.php. Crea una plantilla de este archivo (si no sabes cómo sobrescribir plantillas de WooCommerce estudia esto) y encuentra este código:

$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
) );

Todo lo que tienes que hacer es cambiar la variable

$posts_per_page

¡Por el número de productos relacionados que quieras mostrar! Por ejemplo:

'posts_per_page'        => 10,

Mostrará 10 productos.

27 dic 2012 12:11:19
Comentarios

Ten en cuenta que esta solución puede requerir que modifiques el archivo nuevamente después de actualizar WooCommerce.

fischi fischi
27 dic 2012 12:41:26

No es necesario copiar el archivo de plantilla para este cambio. ¿Ves el filtro woocommerce_related_products_args en la parte superior? Ahí es donde necesitas engancharte para sobrescribir posts_per_page.

Geert Geert
27 dic 2012 12:49:13