Não sei se entendi direito o que você deseja, mas pedirei que faça o seguinte teste. Delete a página portfólio que você criou, crie um arquivo chamado archive-portfolio.php com o loop padrão do WordPress, vá em permalinks e salve e depois faça um teste.
Leo, eu justamente não quero utilizar a archive-portfolio.php!
Eu gostaria de definir o meu post-type sem arquivo, e então fazer meu próprio loop em uma template page, cansei de fazer isso, sempre o faço para posts. Entretanto, para um custom post type ele tem funcionado para uma página, mas não para paginação.
Saquei, como está fazendo o loop e como está fazendo a paginação?
Criei um Gist de exemplo com o arquivo do loop.
https://gist.github.com/allysonsouza/61c48cea9db17ed9d12a
A criação do CPT tem o argumento ‘has_archive’ => false como disse.
Allyson, seu código está todo certinho, deveria funcionar. Então só me resta crer que existe algum bug ou limitação do WordPress para esses casos, vou dar uma pesquisada porque fiquei intrigado.
Então, isso é um front-page?
Porque se for ele não vai ter paged
e apenas page
, tem falando sobre isso na documentação do get_query_var
.
Não consigo ver um motivo para ter um loop diferente ai assim, acredito que como você deseja personalizar pode ser feito por pre_get_posts
, entretanto para usar isso você vai ter que manter o 'has_archive' => true
, assim fica bem mais simples de modificar a quantidade e etc.
No caso de post type já tem o arquivo próprio como archive-POST_TYPE.php
, entretanto se por algum motivo você esta fazendo isso dai por um plugin ou algo que realmente precisa usar outro arquivo (porque talvez seria esse o motivo de usar uma página) você ainda pode usar o template_include
.
O motivo: Ter, de uma maneira fácil, uma página com um template específico relacionado ao arquivo de um determinado custom post type, sendo ela responsável pela custom query deste conteúdo.
Porquê? Para que, de forma fácil, seja possível lidar com o conteúdo relacionado a estes arquivos, como imagens e outros eventuais custom fields que o projeto possa necessitar.
No nosso blog trabalhei desta forma, usando o mesmo código de exemplo, como ‘paged’ mesmo, porém o slug da página é diferente do post_type, chama-se ‘blog’ (este é o grande problema): http://www.hastedesign.com.br/blog
No caso gostaria de saber se tem como trabalhar desta forma, definindo ‘has_archive’ => false para utilizar o slug da página como o mesmo do post_type, pelos motivos citados acima.
Funciona para uma página, como dito, a paginação que não funciona.
Você não respondeu pra mim é front-page ou não.
No site inteiro vai funcionar como paged
, mas se for front-page vai ser page
apenas.
Foi mal, não, não é front-page.
Dei uma boa pesquisa e aparentemente ninguém resolveu mantendo o mesmo slug com paginação ainda, acabei por hora alterando o slug da página para 'portfolios'
, e mantendo o slug do post_type 'portfolio'
.
Valeu a ajuda!
Pois é Allyson, se me bater com algo sobre isso volto por aqui para compartilhar e peço que faça o mesmo.
Então Leo, assim que postei o Claudio veio dar uma força e confirmou as supeitas de que era problema no rewrite da url, vou pedir para ele dar sua explicação por aqui e encerrar o tópico. Enfim, não parece algo fácil de alterar, acredito que o melhor seja buscar outras alternativas.
(Além dos slugs diferentes, poderia criar páginas de configuração no admin para as archives, o que queria evitar, mas parece mais apropriado)