Comentários sob cada post na página principal

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.

16 comentários
  • Jefferson - 6.606 Comentários

    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.

  • Renato Jafet - 1 Comentário

    Ryan parabéns pelo Blog, feliz 2012

  • Luciano - 489 Comentários

    “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!  ;)

  • Saulo Benigno - 279 Comentários

    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…

    • Jefferson - 6.606 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.

    • Jefferson - 6.606 Comentários

      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:

      <a href="<?php the_permalink(); ?>#comments">
       Se quiser comentar e não estiver vendo o formulário, clique aqui.
      </a>
      

      Mas ainda estou tentando descobrir qual é esse lugar certo. :D Por enquanto estou fazendo gambiarras só para que vocês tenham onde clicar,

  • Saulo Benigno - 279 Comentários

    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
     
     

    • Jefferson - 6.606 Comentários

      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.

      • Jefferson - 6.606 Comentários

        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.

  • Jefferson - 6.606 Comentários

    Mais sério que isso é o problema nos links “Responder”, que não funcionam na página principal.

    • Jefferson - 6.606 Comentários

      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'=>__(' &middot; 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'=>__(' &middot; 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'=>__(' &middot; 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'=>__(' &middot; 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'=>__(' &middot; 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'=>__(' &middot; 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'=>__(' &middot; 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'=>__(' &middot; 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'=>__(' &middot; Reply','atahualpa'),
      			'login_text'=>__('Log in to Reply','atahualpa'),
      			'callback' => 'bfa_comments1', 
      			'type' => 'all'
      			));
      
      	}}
      ?>
      
  • Luciano - 489 Comentários

    É… 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. :-P

  • Luciano - 489 Comentários

    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 <.  B)
     
    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. :D

    • Jefferson - 6.606 Comentários

      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.

  • pedrosanto - 44 Comentários

    Jefferson, tem como saber se foram feitos novos comentários em posts antigos?

Deixe um comentário para Saulo Benigno Cancelar resposta

Você pode usar estas tags HTML

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

  

  

  

:) :( ;) O_o B) :lol: :huh: :S :D :-P 8-O :yahoo: :rtfm: :dashhead1: :clapping: more »