Parece uma pergunta estúpida. Mas, não consigo descobrir :(.
Preciso exibir o botão em casa que vá para o URL de arquivamento personalizado de post_type (archive- {post_type} .php). Como faço isso?
custom-post-types
templates
ariefbayu
fonte
fonte
yoursite.com/type-slug
menos que você o defina explicitamente para outra coisa, por exemplo.yoursite.com/some-other-url
..Respostas:
Olá @Silent:
Acontece que existe uma função no WordPress 3.1 que faz exatamente o que você deseja e é nomeada
get_post_type_archive_link()
; aqui está como você chamaria (assumindo um tipo de postagem personalizado chamado'product'
):Abaixo está minha resposta anterior antes de descobrir que o WordPress realmente tinha uma função integrada para este caso de uso.
Resposta prévia:
A menos que eu tenha esquecido algo no código-fonte principal do WordPress 3.1, acho que você está procurando uma função como a
get_archive_link()
que você poderia chamar assim (assumindo um tipo de post personalizado chamado'product'
):E aqui está o código fonte que você pode colocar no
function.php
arquivo do seu tema ou no.php
arquivo de um plug-in que você pode escrever:Na verdade, eu estava trabalhando nessa lógica exata no fim de semana, embora ainda não tenha 100% de certeza de que a ordem da lógica esteja genericamente correta em todos os casos de uso que o WordPress possa ver, embora provavelmente funcione para qualquer site específico.
Isso também é uma ótima coisa a sugerir para ser adicionado ao WordPress via trac, que eu acho que farei ainda esta noite.
fonte
ao registrar o tipo de postagem, você pode passar uma string como lesma com o parâmetro "has_archive" e também definir a reescrita como true ou um array, mas não false, e o URL do arquivo CPT será http://www.YOURDOMAIN.com / has_archive_slug por exemplo
se você definir em seu register_post_type, por exemplo:
seu URL único é: http://www.YOURDOMAIN.com/product/postName e o URL do seu arquivo morto é: http://www.YOURDOMAIN.com/products/
fonte
has_archive
era um booleano, mas agora sei que pode receber uma string, para que meu tipo de post personalizadorecipe
possa ter uma lesma plural/recipes/
'rewrite'
aceita apenas um valor booleano ou de matriz. Em vez do que'rewrite' => 'product',
você listou, deveria ser'rewrite' => array( 'slug' => 'product' ),
.