Gostaria de ter uma página separada para os comentários em uma postagem, de modo que esta página: /2011/02/post-name/
mostre a postagem e você clique em um link para visualizar os comentários, levando-o a uma página como esta:/2011/02/post-name/comment-page-1/
Vou verificar o URL para ver se "comment-page-x" está nele e exibir a página de forma diferente (remova a postagem, para que as pessoas não precisem passar por isso todas as vezes e também estilizar coisas um pouco diferente).
Isso funcionaria, mas o WordPress redireciona comment-page-1
para a página de postagem - eu preciso mantê comment-page-1
-la no URL.
Isso é possível? Como eu posso fazer isso? Obrigado!
Respostas:
Ótima pergunta! O WordPress atribui o número da página de comentários à consulta var,
'cpage'
que é definida quando o seu URL/comment-page-1/
termina no final. Portanto, seu culpado está naredirect_canonical()
função, linha 192 de/wp-includes/canoncial.php
.Como a
redirect_canonical()
função é definida como uma ação, o que podemos fazer é inserir nossa própria função a ser chamada, fazer com que nossa função defina a'cpage'
consulta var comofalse
, callredirect_canonical()
e, em seguida,'cpage'
retorne ao que era; que impedirá o WordPress de redirecionar para você.Para inserir sua própria função, você precisa chamar o gancho dois
'init'
e,'template_redirect'
assim, não se esqueça de definir o'init'
gancho para ser chamado após odo_action()
núcleo interno do WordPress que adicionaredirect_canonical()
:Então é claro que você precisa fazer algo com o seu
'cpage'
. Você pode verificar o valor retornado porget_query_var('cpage')
ou adicionar outro gancho para permitir a criação de um modelo específico para comentários, o que eu fiz. Ele adicionará um arquivo de modelo de tema com o mesmo que normalmente carregaria, mas com[comments].php
no final do nome em vez de.php
, iesingle[comments].php
. Observe que eu defino a prioridade desse filtro como 11; pode ser necessário definir um número ainda maior se um plug-in usado se adicionar após o seu gancho:E aqui está a prova de que tudo funciona!
(fonte: mikeschinkel.com )
fonte
functions.php
arquivo do seu tema ou no.php
arquivo de um plug-in que possa estar escrevendo." Mas você diz que não está funcionando? O que exatamente isso não está fazendo? Você colocouecho "Test"; exit;
instruções em cada uma das funções para garantir que os ganchos estejam disparando? Você tem plug-ins que podem estar em conflito? Você tentou mudar11
em dois lugares para100?
Você incluiu todo o código? Você criou um arquivo de modelo de tema chamadosingle[comments].php
?