Entonces tengo un sitio web en un motor de WordPress. Y quiero hacer que las URL de las publicaciones se vean como http://sitioweb.com/blog/nombre-de-la-publicacion/ o http://website.com/blog/nombre-categ/nombre-publicación/. Pero todo lo demás se verá como http://sitioweb.com/nombre-de-la-pagina/. Solo quiero agregar el prefijo ‘blog’ a las URL para todas las publicaciones pero no para las páginas. Mi configuración de enlace permanente es /%postname%/. Si pongo /blog/%postname%/ tendré el prefijo ‘blog’ en cada URL de mi sitio 🙁 No puedo encontrar una solución en el backend de administración de WordPress y no encontré ningún complemento aceptable para esto. Cualquier ayuda se agradece, gracias.
1) Agregue esta reescritura al final de usted function.php
function add_rewrite_rules( $wp_rewrite )
{
$new_rules = array(
'blog/(.+?)/?$' => 'index.php?post_type=post&name=". $wp_rewrite->preg_index(1),
);
$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
add_action("generate_rewrite_rules', 'add_rewrite_rules');
function change_blog_links($post_link, $id=0){
$post = get_post($id);
if( is_object($post) && $post->post_type == 'post'){
return home_url('/blog/'. $post->post_name."https://stackoverflow.com/");
}
return $post_link;
}
add_filter('post_link', 'change_blog_links', 1, 3);
2) Vaya a Configuración > Enlaces permanentes y haga clic en Save Changes
.
BMcCaín
Crea una categoría llamada blog
y usa la estructura de enlaces permanentes /%category%/%postname%/
.
-
Gracias, yo también pensé en esto. Pero tengo un par de categorías y no quiero tener ‘blog’ en la lista de gatos. Claro, puedo ocultar el gato del ‘blog’ con algunos trucos. Pero tal vez haya una solución más elegante.
– Yaroslav Rogoza
3 sep 2011 a las 10:00
-
hola encontraste la solucion a esto yo tambien tengo el mismo problema
– Edesa
5 de agosto de 2012 a las 7:03
timhc22
Hice esto:
add_action( 'init', 'redefine_post', 1 );
function redefine_post() {
register_post_type( 'post', array(
'labels' => array(
'name_admin_bar' => _x( 'Post', 'add new on admin bar' ),
),
'public' => true,
'_builtin' => false,
'_edit_link' => 'post.php?post=%d',
'capability_type' => 'post',
'map_meta_cap' => true,
'hierarchical' => false,
'rewrite' => array( 'slug' => 'blog' ),
'query_var' => false,
'has_archive' => true,
'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats' ),
) );
}
Se trata de crear un tipo de publicación personalizado (que es un poco molesto), pero anula y funciona con la publicación.
¡Ojalá hubiera una mejor manera de hacer esto! (De lo contrario, sí, obtienes /blog/ delante de todo si solo cambias los enlaces permanentes).
Vaya a Configuración > Enlaces permanentes, seleccione “Estructura personalizada” y vuelva a escribir este campo en “/blog/%postname%/”. Tu publicación tendrá el prefijo /blog/, pero tus páginas no. Lo he probado en WordPress 5.2.2
function golden_oak_web_design_blog_generate_rewrite_rules( $wp_rewrite ) {
$new_rules = array(
'(([^/]+/)*blog)/page/?([0-9]{1,})/?$' => 'index.php?pagename=$matches[1]&paged=$matches[3]',
'blog/([^/]+)/?$' => 'index.php?post_type=post&name=$matches[1]',
'blog/[^/]+/attachment/([^/]+)/?$' => 'index.php?post_type=post&attachment=$matches[1]',
'blog/[^/]+/attachment/([^/]+)/trackback/?$' => 'index.php?post_type=post&attachment=$matches[1]&tb=1',
'blog/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?post_type=post&attachment=$matches[1]&feed=$matches[2]',
'blog/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?post_type=post&attachment=$matches[1]&feed=$matches[2]',
'blog/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$' => 'index.php?post_type=post&attachment=$matches[1]&cpage=$matches[2]',
'blog/[^/]+/attachment/([^/]+)/embed/?$' => 'index.php?post_type=post&attachment=$matches[1]&embed=true',
'blog/[^/]+/embed/([^/]+)/?$' => 'index.php?post_type=post&attachment=$matches[1]&embed=true',
'blog/([^/]+)/embed/?$' => 'index.php?post_type=post&name=$matches[1]&embed=true',
'blog/[^/]+/([^/]+)/embed/?$' => 'index.php?post_type=post&attachment=$matches[1]&embed=true',
'blog/([^/]+)/trackback/?$' => 'index.php?post_type=post&name=$matches[1]&tb=1',
'blog/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?post_type=post&name=$matches[1]&feed=$matches[2]',
'blog/([^/]+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?post_type=post&name=$matches[1]&feed=$matches[2]',
'blog/page/([0-9]{1,})/?$' => 'index.php?post_type=post&paged=$matches[1]',
'blog/[^/]+/page/?([0-9]{1,})/?$' => 'index.php?post_type=post&name=$matches[1]&paged=$matches[2]',
'blog/([^/]+)/page/?([0-9]{1,})/?$' => 'index.php?post_type=post&name=$matches[1]&paged=$matches[2]',
'blog/([^/]+)/comment-page-([0-9]{1,})/?$' => 'index.php?post_type=post&name=$matches[1]&cpage=$matches[2]',
'blog/([^/]+)(/[0-9]+)?/?$' => 'index.php?post_type=post&name=$matches[1]&page=$matches[2]',
'blog/[^/]+/([^/]+)/?$' => 'index.php?post_type=post&attachment=$matches[1]',
'blog/[^/]+/([^/]+)/trackback/?$' => 'index.php?post_type=post&attachment=$matches[1]&tb=1',
'blog/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?post_type=post&attachment=$matches[1]&feed=$matches[2]',
'blog/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?post_type=post&attachment=$matches[1]&feed=$matches[2]',
'blog/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$' => 'index.php?post_type=post&attachment=$matches[1]&cpage=$matches[2]',
);
$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
add_action( 'generate_rewrite_rules', 'golden_oak_web_design_blog_generate_rewrite_rules' );
function golden_oak_web_design_update_post_link( $post_link, $id = 0 ) {
$post = get_post( $id );
if( is_object( $post ) && $post->post_type == 'post' ) {
return home_url( '/blog/' . $post->post_name );
}
return $post_link;
}
add_filter( 'post_link', 'golden_oak_web_design_update_post_link', 1, 3 );
-
Pegue el fragmento de código anterior en el archivo functions.php de su tema principal activo o tema secundario. Link de referencia: goldenoakwebdesign.com/blog/…
– Arunprasanth M
17 de noviembre de 2020 a las 10:20
-
Una vez que haya pegado el código anterior. Vaya a Configuración –> Enlaces permanentes y haga clic en Guardar cambios.
– Arunprasanth M
17 de noviembre de 2020 a las 10:23
-
Pegue el fragmento de código anterior en el archivo functions.php de su tema principal activo o tema secundario. Link de referencia: goldenoakwebdesign.com/blog/…
– Arunprasanth M
17 de noviembre de 2020 a las 10:20
-
Una vez que haya pegado el código anterior. Vaya a Configuración –> Enlaces permanentes y haga clic en Guardar cambios.
– Arunprasanth M
17 de noviembre de 2020 a las 10:23