Avisos
Vaciar todo

[Resuelto] Ajustes enlaces permanentes

8 Respuestas
4 Usuarios
0 Reactions
33 Visitas
Respuestas: 299
Reputable Member
Topic starter
 

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 9:16 am
Pepe
 Pepe
Respuestas: 41129
Illustrious Member 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 10:24 am
Respuestas: 299
Reputable Member
Topic starter
 

@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 11:37 am
Karen Rios
Respuestas: 18684
Illustrious Member 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 12:52 pm
Respuestas: 299
Reputable Member
Topic starter
 

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


 
Respondido : 25/05/2022 7:58 pm
Bruno
Respuestas: 6488
Illustrious Member 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 8:19 pm
Respuestas: 299
Reputable Member
Topic starter
 

@bruno-vichetti Perfecto gracias


 
Respondido : 25/05/2022 9:08 pm
Bruno
Respuestas: 6488
Illustrious Member Moderator
 

Hola Gabriel,

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

Saludos!


 
Respondido : 25/05/2022 9:18 pm