Avisos
Vaciar todo

[Resuelto] Ajustes enlaces permanentes  

 
Gabriel
 Gabriel
Reputable Member

Buenos días,

Las categorías y etiquetas de las entradas no están indexadas. No quiero que me muestre TAG en la url cuando accedo a una etiqueta concreta. He configurado en Ajustes->Enlaces permanetes que tanto la Base de las categorías como las de las etiquetas sean "." y para las categorías si funciona de forma que no se muestra la palabra CATHEGORY pero para las etiquetas no consigo que funcione, me da Error 404.

Anotación 2022 05 25 111203

 Si dejo Base de las etiquetas en blanco me muestra TAG en la url y si pongo un . tal y como he hecho para las categorías (donde sí funciona) me da Error 404.

Por favor, ¿podrían indicarme qué estoy haciendo mal? Gracias

Contenido solo visible a usuarios registrados

Respondido : 25/05/2022 10:16 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Gabriel.

Si Utilizas Rank Math paar el seo revisa esta documentación:

-> https://rankmath.com/kb/remove-wordpress-category-base/

Si utilizas Yoast en las opciones Seo -> Apariencia buscador:

screenshot joomlero cp7004.webjoomla.es 2022.05.25 12 19 52

Puedes probar tambien con esta función:

function fix_slash( $string, $type )
{
global $wp_rewrite;
if ( $wp_rewrite->use_trailing_slashes == false )
{
    if ( $type != 'single' && $type != 'category' )
        return trailingslashit( $string );

    if ( $type == 'single' && ( strpos( $string, '.html/' ) !== false ) )
        return trailingslashit( $string );

    if ( $type == 'category' && ( strpos( $string, 'category' ) !== false ) )
    {
        $aa_g = str_replace( "/category/", "/", $string );
        return trailingslashit( $aa_g );
    }
    if ( $type == 'category' )
        return trailingslashit( $string );
}
return $string;
}

add_filter( 'user_trailingslashit', 'fix_slash', 55, 2 );

 

Un saludo

 

 

Respondido : 25/05/2022 11:24 am

Gabriel
 Gabriel
Reputable Member

@pepesoler Muchas gracias, igual me he explicado mal. He leido el artículo pero mi problema no es con las categorías sino con las etiquetas. Para las categorías sí he conseguido mediante Ajustes->Enlaces permanentes de WordPress eliminar la palabra category de la url.

De todas formas he activado la opción que se indicas en la entrada de Rank Math y solo afecta a las categorías no a las etiquetas. 

Respondido : 25/05/2022 12:37 pm
Karen Rios
 Karen Rios
Soporte CMS Webempresa Moderator

Hola Gabriel, 

En este caso puedes probar un complemento como -> https://es.wordpress.org/plugins/wp-no-base-permalink/ ten en cuenta que no ha sido probado en versiones recientes de WordPress por lo que debes revisar si funciona de forma correcta en tu sitio web. 

Una vez lo instalas puedes acceder a Ajustes -> Enlaces permanentes y seleccionar, desactivar la base para las etiquetas

image

También puedes revisar algún otro como -> https://es.wordpress.org/plugins/no-category-base-wpml/

Un Saludo 

 

 
Respondido : 25/05/2022 1:52 pm

Gabriel
 Gabriel
Reputable Member

@karen Quisiera poder resolverlo sin tener que instalar un plugin para ello. ¿No existe otra solución? Gracias

Respondido : 25/05/2022 8:58 pm
Bruno
 Bruno
Soporte CMS Webempresa Moderator

Que tal Gabriel,

Investigando un poco al respecto han remitido una solicitud similar en los foros de Wordpress donde muestran el siguiente fragmento de código https://wordpress.org/support/topic/sitemap-help-remove-tag-in-urls/

`// remove tag base
add_filter(‘tag_rewrite_rules’, ‘no_tag_base_rewrite_rules’);
function no_tag_base_rewrite_rules($tag_rewrite) {
$tag_rewrite=array();
$tags=get_tags(array(‘hide_empty’=>false));
foreach($tags as $tag) {
$tag_nicename = $tag->slug;
if ( $tag->parent == $tag->tag_ID )
$tag->parent = 0;
elseif ($tag->parent != 0 )
$tag_nicename = get_tag_parents( $tag->parent, false, ‘/’, true ) . $tag_nicename;
$tag_rewrite[‘(‘.$tag_nicename.’)/(?:feed/)?(feed|rdf|rss|rss2|atom)/?$’] = ‘index.php?tag=$matches[1]&feed=$matches[2]’;
$tag_rewrite[‘(‘.$tag_nicename.’)/page/?([0-9]{1,})/?$’] = ‘index.php?tag=$matches[1]&paged=$matches[2]’;
$tag_rewrite[‘(‘.$tag_nicename.’)/?$’] = ‘index.php?tag=$matches[1]’;
}
global $wp_rewrite;
$old_base = $wp_rewrite->get_tag_permastruct();
$old_base = str_replace( ‘%tag%’, ‘(.+)’, $old_base );
$old_base = trim($old_base, ‘/’);
$tag_rewrite[$old_base.’$’] = ‘index.php?tag_redirect=$matches[1]’;
return $tag_rewrite;
}`

Valida si te funciona, de lo contrario vale la pena probar el siguiente plugin que pese a que no ha sido actualizado recientemente no representaría un impacto en tu sitio.

Plugin https://wordpress.org/plugins/wp-no-base-permalink/

Prueba de como funciona https://www.youtube.com/watch?v=D_ncTJviAzo

Saludos!

Respondido : 25/05/2022 9:19 pm

Gabriel
 Gabriel
Reputable Member

@bruno-vichetti Perfecto gracias

Respondido : 25/05/2022 10:08 pm
Bruno
 Bruno
Soporte CMS Webempresa Moderator

Hola Gabriel,

Es un gusto saber que has podido solucionar, recuerda que cualquier otra consulta estaremos atentos

Saludos!

Respondido : 25/05/2022 10:18 pm