Estructura personalizada de enlace permanente solo para publicaciones predeterminadas

4

¿Alguien sabe cómo modificar la estructura url solo para la página de publicación única?

Cuando voy a una página de publicación, la url debería verse como: example.com/xxx/my-post. Todas las demás direcciones URL (con la excepción de las páginas de publicación única) no deben contener "xxx" en la dirección URL.

La personalización de la configuración del enlace permanente agregaría xxx delante de las taxonomías y las categorías, así que no funcionaría para lo que necesito.

Esencialmente, quiero que todas las URL "post" y "eventos" contengan un segmento "xxx" adicional en la estructura.

    
pregunta c10b10 04.01.2012 - 17:18

2 respuestas

3

La solución es volver a registrar el tipo de publicación predeterminado justo después de Wordpress, y agregar un slug de reescritura. Además, el parámetro _builtin debe configurarse en falso.

add_action( 'init', 'my_new_default_post_type', 1 );
function my_new_default_post_type() {

    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' => 'post' ),
        'query_var' => false,
        'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats' ),
    ) );
}
    
respondido por el c10b10 09.01.2012 - 17:47
2

Otro método sin los efectos secundarios potenciales de registrar un nuevo tipo de publicación es modificar las reglas de reescritura para eliminar el frente del enlace permanente.

function wpa37911_permastructs(){
    global $wp_rewrite;
    $wp_rewrite->extra_permastructs['category']['struct'] = '/category/%category%';
    $wp_rewrite->extra_permastructs['post_tag']['struct'] = '/tag/%post_tag%';
}
add_action( 'init', 'wpa37911_permastructs' );
    
respondido por el Milo 10.03.2013 - 06:29

Lea otras preguntas en las etiquetas