Eu adaptei para o Atahualpa 3.7.3 essas dicas (posts de Flynn e dextor) e consegui fazer a página principal exibir posts intercalados com comentários, como o Buzz.
Problemas:
- O post que tinha apenas um vídeo do youtube “endoidou” (depois eu olho isso); Edit: agora está aparecendo. Deve ter sido coincidência (minha conexão está ruim hoje).
- Não sei se isso vai dar certo sem um meio de fazer o “collapse” para ocultar comentários, como era possível no P2
Vai ficar assim por um tempo enquanto avalio. Por favor dêem suas opiniões e reportem bugs.
Mais um problema: para exibir o formulário para comentar é preciso clicar no link de comentários ou no link no título de cada post. Ou seja: nada mudou! o problema é que com a exibição dos comentários, você espera encontrar o formulário logo abaixo deles ou pelo menos um link logo abaixo deles para comentar. O formulário foi removido porque é grande e ia tumultuar a página aparecendo repetidas vezes. Como já está chegando a hora de ir dormir, depois eu penso numa solução.
Ryan parabéns pelo Blog, feliz 2012
“Parpite de parpiteiro”.
– Diminui a fonte (e/ou tira o negrito) do que diz ali em cima “x Comentários”.
– Muda a cor de fundo dos comentários do Admin, esse verde “telefonica” (ou verde vo#it0 como a gente diz por aqui) é de lascar, até dói nos olhos.
– Copia o link comentários do post para o final (depois) do loop da pagina de comentários e troca o texto dele de “x Comentários” para “Adicionar comentário”.
– Sem querer ser o chato… muda a caixinha “Notifique-me de novos comentários via e-mail” de sempre selecionada pra não selecionada.
Dai fica xuxu beleza!
Adiciona um link em algum lugar do post, talvez ao lado de “x comentários” , adiciona um “x Comentários. Faça um comentário” ou “Comente” ou … pois não tem indicação alguma de como comentar. no final dos comentários, em algum lugar… não tem link algum. Não tem nada dizendo como fazer comentário.
Poe o mesmo link do “X comentários” da pagina principal, normalmente esse
https://ryan.com.br/blogs/quicktalk/2012/01/comentarios-sob-cada-post-na-pagina-principal/#comments
Ele vai direto para caixa de comentários…
Se fosse tão simples…
O link para comentários é gerado por uma função do wordpress ou PHP padrão. Você sabe qual é?
Eu preciso no mínimo saber a função que gera o link para o post e depois acrescentar o “#comments”. Mas não estou encontrando isso.
Descobri como se faz.
A função que eu procurava é a “the_permalink“.
A solução para o problema é colocar algo assim no lugar certo:
Mas ainda estou tentando descobrir qual é esse lugar certo.
Por enquanto estou fazendo gambiarras só para que vocês tenham onde clicar,
Jefferson, ótimo
Agora outra coisa, não precisa mostrar quando você está lendo um post, está aparecendo também. Para não mostrar é só usar uma função com o comando do WordPress is_single , neste link tem como funciona
http://codex.wordpress.org/Function_Reference/is_single
Eu coloquei o texto “se não estiver vendo”, justamente por isso. Eu já usei a função is_single quando suprimi o formulário de comentários na página principal. Mas quando testei no caso do link a página começou a dar erros. Ainda vou tentar outra vez mais tarde.
Resolvi o problema. Foi preciso colocar o seguinte em dois pontos de comments.php:
<?php if ( is_single() ) {} else { echo '<br/><a href="'; the_permalink(); echo'#comments">Clique aqui para comentar.</a>'; } ?>Demorou porque eu estou aprendendo PHP “na marra” por tentativa e erro. Consultar a referência não é suficiente quando é preciso fazer uma construção como a que se vê acima. Ou você vê um exemplo ou vai mexendo até acertar.
Mais sério que isso é o problema nos links “Responder”, que não funcionam na página principal.
Contornei o problema (apenas ocultei o link) com uma enorme gambiarra.
Não esperem entender o que se segue. Só quem estiver tentando fazer exatamente o mesmo, no mesmo tema, tem chance de entender.
Em bfa_custom_comments.php eu dupliquei a função “bfa_comments” como “bfa_comments1” e nesta duplicata eu removi o trecho que exibia o link “Responder”.
Em comments.php Eu criei uma condicional com “is_single” onde o ELSE contém uma duplicata de todo o trecho que chama “bfa_comments”, mas renomeado como “bfa_comments1”.
Original:
<?php // Do this for every comment if ($bfa_ata['separate_trackbacks'] == "Yes") { wp_list_comments(array( 'avatar_size'=>$bfa_ata['avatar_size'], 'reply_text'=>__(' · Reply','atahualpa'), 'login_text'=>__('Log in to Reply','atahualpa'), 'callback' => 'bfa_comments', 'type' => 'comment' )); wp_list_comments(array( 'avatar_size'=>$bfa_ata['avatar_size'], 'reply_text'=>__(' · Reply','atahualpa'), 'login_text'=>__('Log in to Reply','atahualpa'), 'callback' => 'bfa_comments', 'type' => 'pings' )); } else { wp_list_comments(array( 'avatar_size'=>$bfa_ata['avatar_size'], 'reply_text'=>__(' · Reply','atahualpa'), 'login_text'=>__('Log in to Reply','atahualpa'), 'callback' => 'bfa_comments', 'type' => 'all' )); } ?>Tornou-se isto:
<?php // Do this for every comment if ( is_single() ) { if ($bfa_ata['separate_trackbacks'] == "Yes") { wp_list_comments(array( 'avatar_size'=>$bfa_ata['avatar_size'], 'reply_text'=>__(' · Comentar','atahualpa'), 'login_text'=>__('Faça o login para comentar ','atahualpa'), 'callback' => 'bfa_comments', 'type' => 'comment' )); wp_list_comments(array( 'avatar_size'=>$bfa_ata['avatar_size'], 'reply_text'=>__(' · Comentar','atahualpa'), 'login_text'=>__('Faça o login para comentar','atahualpa'), 'callback' => 'bfa_comments', 'type' => 'pings' )); } else { wp_list_comments(array( 'avatar_size'=>$bfa_ata['avatar_size'], 'reply_text'=>__(' · Comentar','atahualpa'), 'login_text'=>__('Faça o login para comentar','atahualpa'), 'callback' => 'bfa_comments', 'type' => 'all' )); }} else { if ($bfa_ata['separate_trackbacks'] == "Yes") { wp_list_comments(array( 'avatar_size'=>$bfa_ata['avatar_size'], 'reply_text'=>__(' · Reply','atahualpa'), 'login_text'=>__('Log in to Reply','atahualpa'), 'callback' => 'bfa_comments1', 'type' => 'comment' )); wp_list_comments(array( 'avatar_size'=>$bfa_ata['avatar_size'], 'reply_text'=>__(' · Reply','atahualpa'), 'login_text'=>__('Log in to Reply','atahualpa'), 'callback' => 'bfa_comments1', 'type' => 'pings' )); } else { wp_list_comments(array( 'avatar_size'=>$bfa_ata['avatar_size'], 'reply_text'=>__(' · Reply','atahualpa'), 'login_text'=>__('Log in to Reply','atahualpa'), 'callback' => 'bfa_comments1', 'type' => 'all' )); }} ?>É… você esta mais ou menos no mesmo ponto em que eu estava a uns 4 ou 5 anos atras com PHP. Aprendendo tudo na base da tentativa e erro e lendo as referencias lá no PHP.NET eheh
Uma boa dica é catar código dos outros e ir olhando e entendendo como funciona.
Minha ultima aventura deste tipo foi aprender como fazer um plugin para o WordPress. Não foi grande coisa e ainda tem muita gambiarra nele, mas é aquele termômetro que aparece no topo do meu blog.
Ahhh… mais cedo eu percebi que você estava editando o código e passando pelo problema de todo iniciante. Aqueles errinhos bobos de falta um ; ou passou um <.

Pra isso ajuda bastante algum editor TXT que suporte sintaxe highlight como no MedCX, NotePad2, Notepad++ ou outro de sua preferencia que tenha suporta a sintaxe para PHP.
Eu gosto do MedCX porque é bem completo, uso pra outras coisas alem de PHP. É um editor de texto realmente voltado para o programador.
Eu estava usando o próprio editor do wordpress, que é bem primitivo, mas o problema não foi de faltar ou passar. Eu estava usando tags onde tags não eram esperadas. Mesmo usando o notepad++ eu teria cometido os mesmos erros.
Jefferson, tem como saber se foram feitos novos comentários em posts antigos?
O único meio, hoje, é assinar o feed de comentários e acompanhar, por exemplo, com o Google Reader.