Use a página do WordPress em vez do arquivo do tipo de postagem


15

Desculpe se esta é uma duplicata - não consigo encontrar uma resposta.

Como reescrever uma página de arquivamento de tipo de postagem personalizada em uma página do WordPress 'artificial'?

Por exemplo:

  • Página Única: http://www.mywebsite.com/cool-post-type/awesome-single-post/
  • Página de arquivo: http://www.mywebsite.com/cool-post-type/

Eu quero http://www.mywebsite.com/cool-post-type/reescrever para http://www.mywebsite.com/about-cool-post-types/.

Posso fazer isso com htaccess e qual seria a sintaxe? (Eu não sou bom em htaccess!)

Isso não funciona:

RewriteRule ^cool-post-type\/\?$ /about-cool-post-types [L]

Ou tenho que fazer isso no código-fonte do WordPress? Eu não quero!

Respostas:


16

Este é realmente muito fácil. Ao declarar seu tipo de postagem usando register_post_type , você precisa adicionar um novo argumento para 'has_archive'.

Então você adicionará algo ao efeito de:

'has_archive' => 'about-cool-post-types'

Em seguida, vá para Configurações> Link permanente para liberá-los e deve funcionar. Eu testei localmente, e esse parece ser o caminho para gerar automaticamente sua página de arquivamento em um URL diferente. Então, você poderá criar uma página no slug do CPT.


Isso parou de funcionar, mas eu consegui corrigi-lo atribuindo 'has_archive' a um texto arbitrário e renomeando a lesma da minha página para a categoria lesma.
Warwick

7

Há também um plugin simples de um arquivo para isso agora, pelo pessoal do HumanMade;

https://github.com/humanmade/page-for-post-type

(Meta: Eu sei que as respostas com links geralmente não são ótimas, mas não quero apenas copiar e colar o código-fonte dessa coisa em uma resposta. Qual é a melhor estratégia para esse tipo de coisa?)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.