Como ya vimos, el orden por defecto del catálogo de productos en una tienda online creada con WooCommerce es de orden alfabético + orden personalizado.

Este desplegable de WooCommerce para mostrar los productos en distinto orden tiene, por defecto, las siguientes opciones:
- Por defecto
- Por popularidad
- Por calificación media
- Por los últimos
- Ordenar por precio: alto a bajo
- Ordenar por precio: bajo a alto
Cómo cambiar el orden por defecto de los productos de WooCommerce
Hay varias maneras de cambiar el orden por defecto de los productos, y vamos a verlos todos, incluso alguno que te sorprenderá.
Cómo cambiar el orden de los productos en la administración de WooCommerce
Lo primero que vamos a ver es cómo ordenar productos, no para los clientes, sino para los gestores de la tienda, en la administración de WooCommerce.
Tenemos básicamente 2 maneras de hacerlo, una que seguro que ya conoces pero no te aporta mucho, y otra que te va a sorprender.
La primera, y obvia, es simplemente hacer clic en una columna de la pantalla de gestión de productos y ordenarlos por nombre, SKU, precio, etc.
El problema de este método de ordenación es que no se guarda el orden, la próxima vez que accedas a esta pantalla volverás a tener los productos ordenados por orden de publicación, de más nuevo a más antiguo.
Pero hay truco, y es simplemente cambiar la fecha de publicación del producto, algo que tiene sentido no andar cambiando en entradas de blog pero que casi nunca importa en productos de una tienda online.
Así que, simplemente, cambia la fecha de publicación de los productos que quieras tener en primer lugar a una fecha reciente de publicación y ya está.
Lo puedes hacer mediante la edición rápida de la pantalla de gestión de productos o abriendo el editor de productos, como prefieras.
Pero aún hay más, y este otro método seguro que ni te habías dado cuenta de que siempre ha estado ahí.
Me refiero a la lista de productos desde la pantalla de «Ordenar».
Resulta que este listado permite que cambies manualmente el orden de tus productos, arrastrando y soltando, y sí, se guardará el orden, de manera que ahí siempre tendrás la lista personalizada de productos, en el orden que necesites para tus cambios de precio o lo que sea.
No te lo explico, te lo muestro en este vídeo…
¿Sorprendido?
No te creas, yo lo descubrí por casualidad, por la manía que tengo de probarlo todo, y desde que lo conocí lo uso en todas las tiendas online que gestiono, y siempre lo recomiendo a mis clientes.
Cómo cambiar el orden por defecto de los productos personalizándolo
Ya de cara a los clientes, el método más sencillo para cambiar el orden por defecto de los productos es desde el personalizador de WordPress.
Ve a Apariencia → Personalizar → WooCommerce → Catálogo de productos y cambia el orden al que tú prefieras.

Como ves, sencillo y disponible en cualquier instalación de WordPress con WooCommerce, da igual el tema activo.
Cómo cambiar el orden por defecto de los productos usando un código
Si prefieres usar un código para cambiar el orden por defecto del catálogo de productos en la tienda, y de este modo evitar que cualquier usuario con permisos pueda modificarlo desde el personalizador has llegado al sitio indicado.
Simplemente añade una función como esta al archivo functions.php del tema (hijo) activo o a tu plugin de personalizaciones:
/* Cambiar orden por defecto de productos en tienda */
add_filter('woocommerce_default_catalog_orderby', 'ayudawp_orden_productos');
function ayudawp_orden_productos( $sort_by ) {
return 'price-desc'; //cambiamos orden por defecto a primero más caros
}
Lo único que tienes que cambiar en el código es valor de return, pudiendo elegir entre:
menu_order(por defecto) – por número de orden personalizado más el nombre del producto alfabéticamente.popularity– Por la cantidad de ventas.rating– Por el promedio de valoraciones.date– Primero se mostrarán los productos recién publicados.price– Primero se mostrarán los productos más baratos.price-desc– Primero se mostrarán los productos más caros.rand– Orden aleatorio en cara visualización del catálogo.
Cómo cambiar el orden por defecto de los productos de una categoría concreta usando un código
Una variación del código anterior sería cambiar el orden por defecto solo en cierta(s) categoría(s).
Solo hay que añadir una condición con is_product_category( 'slug-categoria' ).
Sería así:
/* Cambiar orden por defecto productos
add_filter('woocommerce_default_catalog_orderby', 'ayudawp_orden_categorias');
function ayudawp_orden_categorias( $sort_by ) {
if( !is_product_category('zapatos') ) {
return $sort_by; //sin cambios para el resto de categorías
}
return 'rating'; //esta categoría la ordenamos por valoraciones
}
Como verás, son muchas las posibilidades de personalización de ordenado de los productos.
Además, si no quieres que los clientes puedan cambiar el orden que tú establezcas, siempre puedes ocultar el desplegable, como ya vimos…
https://ayudawp.com/quitar-desplegable-ordenar-woocommerce/
Otro día veremos aún más posibilidades de personalización, que las hay.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!







AVISO: Esta publicación hace 3 años o más que no se actualiza. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado. ¡Ah! ¿te sirvió?, pues entonces nada :-)
Hola Fernando, ¿como seria la funcion para redireccionar desde una url interna a otra url interna (con urls relativas) y para functions.php o code snippets?
Para redireccionar cuando salgo de wordpress uso esta función:
function salir_redirect(){
wp_redirect( home_url() );
exit();
}
add_action( ‘wp_logout’, ‘salir_redirect’ );
Ahora necesitaria una de url a url, exactamente quiero redireccionar contraseña perdida o lostpassword de wordpress a otra pagina.
Nota: Se que redirection lo hace y funciona bien pero quedan las redirecciones ahi registradas y cualquiera puede borrarlas por eso busco la manera de hacerlas y que no se vean en redirection, ademas asi me ahorro un plugin aunque se que este en especial es muy util y necesario.
Gracias y un saludo.
Hola Fernando,
Interesante artículo como siempre, lleno de cosas prácticas y de opciones de como hacerlo.
Hola! he visto varios videos pero lo que yo quiero es que ese orden que yo cambio asi tal como lo explicas tu, que ese orden le aparezca igual al cliente, porque yo cambio en PRODUCTOS / Ordenar, cambio el orden, el simbolo gira y se actualiza, queda mi lista en el orden que yo quiero pero voy a la pagina como «un cliente que va a comprar» y no produce ningún cambio de orden, los productos no se mueven de lugar, no se si me explico
Puede ser simplemente la caché. Vacía todas las cachés antes de probar la nueva visualización
Hola, como podría cambiar la antigüedad de los productos, explico, soy tienda, entro los artículos cuando se hacen los pedido, llegan 4 meses después, quisiera que salieran como nuevos en la tienda, ¿Cómo cambiar de antiguo a nuevo en Lote?.
Gracias,
Andres.
Hola, como puedo ordenar los productos dentro de un lote? quisiera que aparezcan ordenados por nombre alfabeticamente, y por categoria, o sea primero los de una categoría alfabeticamente y luego lo mismo para la otra categoría. Al menos en el carrito o en el albarán. Se podrá?
Buenas! Tengo una consulta, se puede organizar la tienda para que los productos aparezcan ordenados según su SKU? Muchas gracias.
Puedes forzar a que siempre estén ordenados por SKU agregando el siguiente código en functions.php:
function my_add_sku_sorting( $args ) { $args["orderby"] = "meta_value"; $args["order"] = "asc"; // lists SKUs alphabetically 0-9, a-z; change to desc for reverse alphabetical $args["meta_key"] = "_sku"; return $args; } add_filter( "woocommerce_get_catalog_ordering_args", "my_add_sku_sorting" );Si en cambio quieres que en el sitio luego se pueda cambiar el orden según elija el visitante, puedes exportar los productos (alcanza con los campos SKU y Posición), abres el archivo en Excel, los ordenás por SKU y reemplazás en la columna Posición con números incrementales y luego vuelves a importar.
Buenos días Fernando,
en relación a este tema tengo un problemilla pero es con las categorías de productos.
En el layout que utilizo lista estas categorías por orden alfabético descendente en lugar de ordenarlos por la posición que yo les ponga en el Backend.
Sabrías cual es el código para que en el layout aparezcan ordenados alfabéticamente pero de manera ascendente?
Un saludo y gracias de antemano.