É possível alterar o URL para o tipo de postagem normal sem afetar o URL de outros tipos de postagem personalizados?

9

O dilema

Eu tenho alguns tipos de postagem personalizados:

  • Itens do portfólio
  • Depoimentos
  • Perguntas frequentes

As estruturas de URL para esses tipos de postagem personalizados são:

  • mysite.com/ portfólio / nome da postagem personalizada
  • mysite.com/ depoimento / nome da postagem personalizada
  • mysite.com/ faq / nome da postagem personalizada

Gostaria de usar o tipo de postagem normal do WordPress para controlar nossas entradas de blog e fazer com que o URL de cada entrada seja assim:

  • mysite.com/ blog / nome da postagem

Se eu for em Configurações> Links permanentes e ajustar a estrutura do URL para ficar como ...

/blog/%postname%/

... os URLs de todos os meus tipos de postagem são afetados, o que resulta em:

  • mysite.com/ blog / portfólio / nome da postagem personalizada
  • mysite.com/ blog / depoimento / nome da postagem personalizada
  • etc ...

A questão

O que eu gostaria de saber - é possível ajustar a estrutura de URL para o tipo de postagem WordPress embutido sem afetar a estrutura de URL de outros tipos de postagem personalizados?

A única outra maneira de resolver meu dilema é criar outro tipo de postagem personalizado chamado "Blog". Isso parece um desperdício, porque não usarei o tipo de postagem WordPress embutido.

Se alguém precisar, o Porquê

Se alguém se pergunta por que preciso tanto de "blog" no URL, é porque estamos mesclando nosso blog na mesma instalação que nosso site e queremos manter os URLs intactos para não perder o valioso suco do Google.

Qualquer ajuda é muito apreciada, obrigado!

Ryan
fonte
Eu só fiz esta mesma pergunta quase palavra por palavra, feliz que eu encontrei este, graças
JasonDavis

Respostas:

14

Você pode fazer isso no registro de tipo de postagem personalizado.

1) Defina seu permalink padrão no administrador do WordPress para a estrutura desejada, por exemplo:

/ blog /% postname%

2) Adicione o parâmetro "slug" e "with_front" ao rewrite-array na função register_post_type. "slug" deve ser o nome do seu tipo de postagem.

  $args = array(
    // ...
    'rewrite' => array(
        'slug' => 'your_post_type',
        'with_front' => false
    ),
    // ...
  ); 
  register_post_type('your_post_type',$args);

Isso deve gerar as seguintes regras de reescrita:

Postagem padrão: http://example.com/blog/%postname%
Página padrão: http://example.com/%postname%
Tipo de postagem personalizada: http://example.com/your_post_type/%postname%

EDITAR

O parâmetro "slug" é opcional. Se você não o definir, o nome do seu tipo de postagem personalizado será usado. Confira a referência de função sobre register_post_type: http://codex.wordpress.org/Function_Reference/register_post_type

rofflox
fonte
Você é absolutamente o homem. Isso funciona perfeitamente; obrigado!
31711 Ryan
@rofflox. Por favor, dê uma olhada nesta questão ( wordpress.stackexchange.com/questions/52471/… ). Eu tentei sua resposta, mas isso não me ajudou.
Média Joe
0

Alternativa - Você pode configurar redirecionamentos 301 permanentes. Isso enviará as pessoas para o link correto e manterá o seu suco do Google intacto. Não sei a resposta para sua pergunta específica.

Mrtsherman
fonte
Obrigado Mrtsherman. Perguntei à nossa pessoa de SEO sobre isso e me disseram que você perde um pouco do suco do Google fazendo 301 redirecionamentos. Eu adoraria não perder nada, mas se tudo mais falhar, posso apenas seguir esse caminho.
Ryan
@Ryan - +1 engraçado, minha empresa apenas pediu para fazer exatamente a mesma coisa que nesta tarde de ontem. Espero que alguém passe.
mrtsherman