En WooCommerce a menudo no se le da a las páginas de las categorías de productos la importancia que deberían tener, dejándolas tal cual vienen con el tema, sin revisar su contenido y estructura adecuadamente, cuando para el SEO podrían ser decisivas en tu tienda online.
Una consulta muy frecuente, cuando hemos añadido texto relevante para la descripción de la categoría, principalmente para poder posicionarla mejor en Google, es que preferimos que aparezca después del listado de productos, no antes, ya que nos interesa más que el posible cliente vea primero que subcategorias o productos tenemos a la venta.
Para hacerlo, podemos utilizar el siguiente código:
remove_action( 'woocommerce_archive_description', 'woocommerce_taxonomy_archive_description', 10 ); add_action( 'woocommerce_after_shop_loop', 'woocommerce_taxonomy_archive_description', 100 );
Como siempre, recuerda que se ha de añadir en el archivo functions.php de tu child theme o en algún plugin tipo code snippets.
Comentarios
23 respuestas a «Mostrar descripción de categoría debajo de los productos en WooCommerce»
|
Hola! A ver si me puedes ayudar, porque no tengo idea de php y estoy liado con una woocommerce. Voy poquito a poco y estoy enganchado en lo siguiente. Me gustaría que el nombre de la categoría (sólo el nombre, no todo el arbol -> Inicio/Camisetas manga corta/camisa blanca <- En éste caso sería 'Camisetas manga corta') apareciese en la ficha de producto, bastante grande, H3 me parece que és ( o si puede ser que el titulo tenga una referencia para después poder asignarle un cambio de fuente y estilo por CSS.) Y que aparezca justo antes de los datos del producto.
Tengo esto ahora en el Funcions:
add_action( 'woocommerce_before_single_product_summary', 'woocommerce_template_custom_content', 1 );
function woocommerce_template_custom_content(){
echo "Esto es una prueba";
}
Pero no tengo ni idea de como hacer que muestre la categoria.
Si me puedes ayudar te lo agradecería mucho. Un saludo.
|
Hola Guillermo!
Ibas por buen camino, sólo te faltaba la parte de recoger las categorías del producto y mostrar el nombre:
Ojo que si el producto está asociado a más de una categoría te mostrará todas, en ese caso tendrías que modificar para limitarlo a un resultado.
Espero que te sirva!
|
Muchísimas gracias guapa!!!! La verdad es que me estaba volviendo loco. Fíjate que ante mi desesperación intenté desplazar los datos de la categoria que aparecían bajo el botón de ‘Agregar al carrito’ a la parte superior de la página del producto, sobre el nombre del producto, ocultando etiqueta de ‘Categoría:’, pero no sabía el nombre del módulo que hay sobre el título. Ahora ya está solucionado! 😉
Hace muchos años programaba en varios lenguajes, pero es la primera vez que me meto con el CSS y el PHP. Nunca había tocado el C y veo que todo lo que hay hoy en día es prácticamente descendencia de ése lenguaje.
Una preguntita! Estoy haciendo casi todos los cambios en CSS como voy podiendo. Qué es más rápido y penaliza menos a la hora de cargar la web, usar el CSS, o incorporar funciones en el Functions.php con add y removes??? Graciassssssss.
|
De nada guapo! 😉
Pues en cuanto a la velocidad de carga no sabría decirte. Yo creo que es más «correcto» hacerlo mediante funciones, modificando los hooks o filtros de WooCommerce necesarios. Pero en muchas ocasiones yo también lo hago por CSS en casos que resulta mucho más sencillo hacerlo así.
Saludos!
|
Hola Esther.
te felicito por tu web porque me salva muchas veces. Esta muy bien!
He hecho lo que comentas a aquí y ahora me sale duplicada la descripción de las categorías.
Sabrías decirme porqué?
Muchas gracias
|
Hola Marc!
Es posible que tu theme esté utilizando otro hook para mostrar la descripción de las categorías. Deberías mirar si lo encuentras para eliminarlo y así que sólo te aparezca la descripción de debajo.
Saludos!
|
Hola Esther de nuevo.
Es aqui donde debería ponerlo? Antes de liarla quería asegurarme. Debo borrar-añadir o lo añado directamente?
Muchas gracias por tu ayuda.
/**
* Archive descriptions.
*
* @see woocommerce_taxonomy_archive_description()
* @see woocommerce_product_archive_description()
*/
add_action( ‘woocommerce_archive_description’, ‘woocommerce_taxonomy_archive_description’, 10 );
add_action( ‘woocommerce_archive_description’, ‘woocommerce_product_archive_description’, 10 );
/**
* Product loop start.
*/
add_filter( ‘woocommerce_product_loop_start’, ‘woocommerce_maybe_show_product_subcategories’ );
/**
* Products Loop.
*
* @see woocommerce_result_count()
* @see woocommerce_catalog_ordering()
*/
add_action( ‘woocommerce_before_shop_loop’, ‘woocommerce_result_count’, 20 );
add_action( ‘woocommerce_before_shop_loop’, ‘woocommerce_catalog_ordering’, 30 );
add_action( ‘woocommerce_no_products_found’, ‘wc_no_products_found’ );
/**
* Product Loop Items.
*
* @see woocommerce_template_loop_product_link_open()
* @see woocommerce_template_loop_product_link_close()
* @see woocommerce_template_loop_add_to_cart()
* @see woocommerce_template_loop_product_thumbnail()
* @see woocommerce_template_loop_product_title()
* @see woocommerce_template_loop_category_link_open()
|
Hola Marc!
Yo probaría a comentar la línea //add_action( ‘woocommerce_archive_description’, ‘woocommerce_taxonomy_archive_description’, 10 );y comprueba si te aparece la descripción duplicada.
Saludos!
|
Buenos días Esther, primero de todo muchas gracias por tu ayuda, a mi, si inserto el código me sale el texto duplicado, el de arriba sigue manteniendose y se me añade uno justo debajo de los productos, la idea es solo tener el texto de abajo para que al entrar a la web o por versión móvil el cliente vea directamente el producto.
|
Hola Ernest!
Como le comentaba a Marc también, es posible que el theme esté utilizando otro hook para mostrar la descripción y por eso aparece duplicado, mira a ver si lo encuentras (o dime el theme que usas por si lo conozco y puedo decirte)
Saludos!
|
El theme que uso es «pinnacle», gracias por tu respuesta
|
Hola buenas noches
Llevo buscando varias horas alguna solución para la página principal de la tienda de WooCommerce (dónde se agrupan todos los productos disponibles en la tienda) y no logro localizar nada.
¿qué código tengo que utilizar para cambiar el texto/descriptivo que se muestra antes de todos los productos? Vamos lo mismo que la solución que se ha comentado arriba sobre las categorías y me ha funcionado a la perfección pero como digo para la página principal de la tienda.
Muchas gracias de antemano.
|
Hola José!
Para añadir contenido a la página de la tienda no es necesario que utilices código. Debes editar la página que tienes configurada en WooCommerce para la tienda (WooCommerce > Ajustes > Pestaña productos) y el contenido que añadas en esa página aparecerá antes del grid de productos.
Saludos!
|
Hola Esther,
Disculpame porque me he explicado fatal.
Precisamente ese contenido que me comentas de la página definida (WooCommerce > Ajustes > Pestaña productos) quiero que se muestre bajo el grid de productos y no antes que es como se muestra por defecto.
Lo que busco es algo similar a la solución que has explicado para las categorías pero para el contenido de la página que te he comentado.
Gracias de nuevo y disculpa de nuevo por no explicarme correctamente
|
Hola José!
Ahora sí te he entendido… he publicado un artículo para que veas cómo hacerlo: Mostrar el contenido de la página de la tienda después de los productos.
Espero que te sirva!
|
muchísimas gracias!!!!! funciona a la perfección!!!
|
Hola Esther,
Me gustaría mover el texto de categoría en woocomerce para despues de los productos, pero dejando arriba el H1 y dos lineas de texto.
¿Como puedo hacerlo?
Muchas gracias
|
Hola Álvaro!
En este caso es un poco más complicado, ya que no te sirve «mover» la descripción tal cual abajo de los productos, sino que necesitas otro campo separado para el texto que tienes encima y el que quieres poner bajo los productos. Miraré si puedo preparar algo de cómo podrías hacerlo.
Saludos!
|
Hola Esther Says
Me podrías ayudar con un problema similar que atendiste.
La verdad es que no tengo experiencia en programación, tengo nociones.
Lo que pasa es que deseo colocar un texto siempre y cuando pertenezcan a una categoría especifica.
Por ejemplo:
1. si el producto es de la categoría «hombre» el resultado que debería imprimir seria un texto «Producto para Hombres».
En este caso si tiene sub categorias debería también mostrar verdad?
este es el código
add_action( ‘woocommerce_single_product_summary’, ‘woocommerce_template_custom_content’, 12 );
function woocommerce_template_custom_content(){
echo «Mi contenido personalizado»;
}
Pense que podría excluir a todas las categorias que no deseo mostar, solo mostraría a la categoría Hombre.
function exclude_category($query) {
if ($id = product ->get_id();
$query->set(‘cat’, ‘-124 -125 -126’);
}
echo «Producto para Hombres»;
|
Hola Marcos,
En el código que muestras, el condicional debería estar dentro de la función woocommerce_template_custom_content, para filtrar si es o no de la categoría hombre.
De todas formas, si no tienes mucha experiencia y no quieres liarte con el código puedes utilizar un plugin cómo Conditional Content o el oficial WooCommerce Conditional Content
Saludos!
|
Buenas tardes, tengo un problemilla con poner la descripción de la categoría debajo.
La cuestión es que si me salen correctamente colocadas bajo el listado de productos, pero la descripción se queda super pegada a los últimos productos y no se como separarlos, he intentado meterle margenes en elementor, pero no hay manera, haga lo que haga la descripción aparece pegada.
Os dejo un link de lo que os comento: https://perlighting.com/categoria-producto/lamparas-interior/aplique-pared-interior/
A ver si me podéis echar una mano.
Un saludo!
|
Hola Pedro,
Si no consigues crear el margen con elementor, puedes probar directamente con CSS o «a malas», crear saltos de línea en la descripción, al principio y final del texto para forzar esa separación.
Saludos!
|
Gracias Esther, buscaba este código 🙂