it-swarm-pt.tech

Estrutura personalizada de permalink apenas para mensagens padrão

Alguém sabe como modificar a estrutura de URL apenas para a página de postagem única?

Quando eu vou para uma página de postagem, a URL deve se parecer com: example.com/xxx/my-post. Todos os outros URLs (com exceção das páginas de postagem única) não devem conter "xxx" no URL.

Personalizar as configurações do permalink adicionaria xxx na frente de taxonomias e categorias, para que não funcionassem para o que eu preciso.

Essencialmente, quero que todos os URLs "post" e "events" contenham um segmento "xxx" extra na estrutura.

5
c10b10

A solução é registrar novamente o tipo de postagem padrão logo após o Wordpress e adicionar um slug de reconfiguração. Além disso, o _builtin param precisa ser definido como false.

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' ),
    ) );
}
3
c10b10

Outro método sem os possíveis efeitos colaterais de registrar um novo tipo de postagem é modificar as regras de reconfiguração para remover a frente do link 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' );
2
Milo