Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

Cómo cambiar (gratis) los enlaces permanentes de una tienda WooCommerce

Los enlaces permanentes de las URLs son el modo en el que WordPress, y sus extensiones, crear las direcciones web de los contenidos. Puedes cambiar esta estructura de URLs en los ajustes de enlaces permanentes de WordPress fácilmente, aunque no se recomienda hacerlo a menudo, para evitar indexar URLs que, tras un cambio, podrían no funcionar.

ajustes enlaces permanentes wordpress

Así, en base a cómo configures la estructura de enlaces permanentes, se crearán las URLs de tus entradas, categorías, etiquetas y páginas.

Enlaces permanentes de WooCommerce

Cuando instalas WooCommerce para crear una tienda online con WordPress se añaden a esta página de ajustes algunas opciones más de enlaces permanentes, las correspondientes a productos y sus taxonomías (categorías, atributos, etc.).

ajustes enlaces permanentes woocommerce

De este modo, si dejas los ajustes de enlaces permanentes por defecto de WooCommerce, al acceder a una URL de un producto será así:

  • Base del producto: https://midominio.com/producto/nombre-producto/
  • Base de la tienda: https://midominio.com/tienda/nombre-producto/
  • Base de la tienda y nombre de categoría: https://midominio.com/tienda/nombre-categoria/nombre-producto/
  • Base personalizada: https://midominio.com/personalizado/nombre-producto/

En general es bastante flexible esta parte, permitiéndote muchas posibilidades, desde las muy informativas (con la base de la categoría) a las más sencillas (base de la tienda).

Pero es que además, están los enlaces permanentes de categorías, etiquetas y atributos, con la peculiaridad de que aquí no hay manera de evitar que se añada automáticamente al enlace permanentes la base de la taxonomía.

O sea, que aunque dejes en blanco el campo en los ajustes de enlaces permanentes las URLs de tus taxonomías llevarán la base, o sea:

  • Categorías de producto: https://midominio.com/categoria-producto/nombre-categoria/
  • Etiquetas de producto: https://midominio.com/etiqueta-producto/nombre etiqueta/

No hay manera (nativa) de quitar ese /categoria-producto/ o /etiqueta-producto/ que sobra absolutamente, no aporta nada, es como el /category/ de los enlaces permanentes de categorías de WordPress: no aporta nada.

Igualmente, mantener la base /producto/ en los productos tampoco aporta nada, y tendrías URLs más sencillas y limpias solo con el nombre del producto ¿verdad? Pues vamos a poner solución a todo esto…

Cómo quitar la base /producto/ de los enlaces permanentes de WooCommerce

Tememos 2 maneras sencillas de conseguirlo…

Con ajuste + código

Para quitar la base /producto/ de los enlaces permanentes de los productos, solo necesitas hacer 2 cosas:

  1. Selecciona la base de producto (/producto/) en los ajustes de enlaces permanentes y guarda los cambios.
  2. Añade el código de abajo a tu archivo de funciones o functions.php del tema o plugin de funciones, lo que prefieras…

ajustes de los enlaces permanentes woocommerce base

/* Quitar producto del slug de productos de WooCommerce */
function ayudawp_quitar_slug_producto( $post_link, $post, $leavename ) {
if ( 'product' != $post->post_type || 'publish' != $post->post_status ) {
return $post_link;
}
$post_link = str_replace( '/producto/', '/', $post_link );
return $post_link;
}
add_filter( 'post_type_link', 'ayudawp_quitar_slug_producto', 10, 3 );

function change_slug_struct( $query ) {
if ( ! $query->is_main_query() || 2 != count( $query->query ) || ! isset( $query->query['page'] ) ) {
return;
}
if ( ! empty( $query->query['name'] ) ) {
$query->set( 'post_type', array( 'post', 'product', 'page' ) );
} elseif ( ! empty( $query->query['pagename'] ) && false === strpos( $query->query['pagename'], '/' ) ) {
$query->set( 'post_type', array( 'post', 'product', 'page' ) );
$query->set( 'name', $query->query['pagename'] );
}
}
add_action( 'pre_get_posts', 'change_slug_struct', 99 );

Guarda los cambios y a partir de este momento las URLs de tus productos serán del tipo: https://midominio.com/nombre-producto/.

Con un plugin específico

La otra posibilidad es usar el plugin gratuito Premmerce Permalink Manager. Después de instalarlo pásate por su página de configuración y cambia el ajuste de WooCommerce por defecto al de slug del producto.

cambiar slug producto premmerce wordpress

Si lo prefieres, también tienes la opción de añadir antes el nombre de la categoría del producto, por si quieres unas URLs aún más semánticas.

Cómo quitar la base /categoria-producto/ de los enlaces permanentes de WooCommerce

El siguiente paso en la simplificación y personalización de las URLs de nuestra tienda online es quitar el innecesario /categoria-producto/ de los slugs de los archivos de las categorías de productos.

En esta ocasión tenemos también varias maneras (gratis) de hacerlo…

Con código y truco «rarito»

Este primer método requiere de 2 pasos. Para empezar, ve a los ajustes de enlaces permanentes de WordPress y, en el apartado de la URL base de la categoría pon simplemente un punto (.) y guarda cambios.

punto en base categorias producto woocommerce

Raro ¿eh? No pasa nada, vamos a por el siguiente y último paso.

Ahora añade el siguiente código como prefieras:

/* Archivos de categorias de productos sin base */
add_filter( 'request', function( $vars ) {
global $wpdb;
if( ! empty( $vars['pagename'] ) || ! empty( $vars['category_name'] ) || ! empty( $vars['name'] ) || ! empty( $vars['attachment'] ) ) {
$slug = ! empty( $vars['pagename'] ) ? $vars['pagename'] : ( ! empty( $vars['name'] ) ? $vars['name'] : ( !empty( $vars['category_name'] ) ? $vars['category_name'] : $vars['attachment'] ) );
$exists = $wpdb->get_var( $wpdb->prepare( "SELECT t.term_id FROM $wpdb->terms t LEFT JOIN $wpdb->term_taxonomy tt ON tt.term_id = t.term_id WHERE tt.taxonomy = 'product_cat' AND t.slug = %s" ,array( $slug )));
if( $exists ){
$old_vars = $vars;
$vars = array('product_cat' => $slug );
if ( !empty( $old_vars['paged'] ) || !empty( $old_vars['page'] ) )
$vars['paged'] = ! empty( $old_vars['paged'] ) ? $old_vars['paged'] : $old_vars['page'];
if ( !empty( $old_vars['orderby'] ) )
$vars['orderby'] = $old_vars['orderby'];
if ( !empty( $old_vars['order'] ) )
$vars['order'] = $old_vars['order']; 
}
}
return $vars;
});

Guarda el código y los archivos de categorías de producto ya no tendrán añadido el /categoria-producto/ antes del nombre de cada categoría. Las URLs pasarán de https://midominio.com/categoria-producto/nombre-categoria-producto/ a https://midominio.com/nombre-categoria-producto/.

Con un plugin especializado

Ahora vamos a hacer lo mismo pero ayudándonos de un plugin específico, que sirve expresamente para esta funcionalidad, y me refiero de nuevo a la versión gratuita de Premmerce Manager Lite.

Solo tienes que instalarlo, activarlo y, en su página de ajustes, cambiar el ajuste por defecto de WordPress a cualquiera de los dos que ofrece:

  • Solamente el slug de la categoría.
  • Ruta completa de la categoría, incluyendo categoría padre y subcategoría.

cambiar slug categoria producto premmerce wordpress

Prueba y elige el que mejor se adapte a tus necesidades.

Con tu plugin de SEO(Press)

La otra posibilidad para quitar el /categoria-producto/ de tus URLs es, si utilizas el plugin SEOPress (gratis), marcar la casilla al efecto, disponible en los ajustes avanzados del plugin.

quitar categoria producto slug con seopress


Nota importante: Siempre que hagas cambios de este tipo a los slugs, ya sea con código o plugins, guarda ajustes de los enlaces permanentes de WordPress, sin modificar nada, simplemente pásate por la página y guarda cambios, para que de este modo se apliquen las modificaciones que hayas realizado.

Enregistrer un commentaire

0 Commentaires