Como agregar el slug blog en las urls de las entradas de WordPress

Author : Jhon

Publicado : 24 octubre, 2022

Lo primero que haremos para añadir la url ‘/blog/’ a nuestras entradas será tener las urls permanentes configuradas en “Nombre de la Entrada”, tal como se muestra en la siguiente imagen:

El siguiente código sólo tiene efecto en las entradas, agregando el slug blog en la url cuando se consulta una entrada individual.

function atr_posts_add_rewrite_rules( $wp_rewrite ){
	$slug = "blog";
    $new_rules = [
        $slug.'/page/([0-9]{1,})/?$' => 'index.php?post_type=post&paged='. $wp_rewrite->preg_index(1),
        $slug.'/(.+?)/?$' => 'index.php?post_type=post&name='. $wp_rewrite->preg_index(1),
    ];
    $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
    return $wp_rewrite->rules;
}
add_action('generate_rewrite_rules', 'atr_posts_add_rewrite_rules');

Con la funcion que acabamos de escribir crearemos la ruta ‘/blog/’ a nuestro post_type «post» después de esto creeremos otra función que tendrá un gancho de filtro «post_link» que añadirá el nuevo slug antes de cargar la pagina o entrada de nuestro post.

function atr_posts_blog_links($post_link, $id=0){
	$slug = "blog";
    $post = get_post($id);
    if( is_object($post) && $post->post_type == 'post'){
        return home_url('/'.$slug.'/'. $post->post_name.'/');
    }
    return $post_link;
}
add_filter('post_link', 'atr_posts_blog_links', 1, 3);

Despues de esto guardamos cambios y ahora al abrir una entrada de nuestros posts la url que se mostrara debería verse así:

https://mi-pagina/blog/mi-entrada-de-post

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *