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