Separando comentários e trackbacks no Wordpress

Filed Under (Blog, Tutoriais, Wordpress) by Cadu de Castro Alves on 09-02-2008

Por padrão, o Wordpress lista comentários e trackbacks juntos, como se fossem a mesma coisa. Muitos designers de temas para Wordpress têm feito modificações no código do Wordpress para mostrá-los separadamente, deixando o site mais organizado e com um visual mais profissional. É exatamente isso que eu ensiná-lo a fazer.

Graças a grande biblioteca de funções disponíveis no Wordpress, é possível manipulá-lo e personalizá-lo da maneira que você quiser, dependendo apenas da profundidade com a qual você conhece a conhece.

O que você precisa?

Primeiramente (e muito importante), é necessário que você possua um site hospedado em seu próprio servidor. Usuários da conta gratuita no Wordpress.com não poderão realizar esta modificação, pois não é permitido o acesso ao código-fonte do Wordpress.

É necessário que você possua instalado em seu servidor a versão 2.0 ou superior do Wordpress, pois esta funcionalidade foi adicionada na versão 2.0. Caso você esteja usando alguma versão inferior a 2.0, atualize a sua instalação do Wordpress.

Você deverá modificar o arquivo comments.php, localizado dentro da pasta de seu tema. Você pode editá-lo através do Painel de Controle do Wordpress (WP Admin > Apresentação > Editar Tema) ou você poderá baixar o arquivo (localizado em /wp-content/themes/seutema/comments.php) e editá-lo em seu editor de códigos favorito.

Conhecimentos básicos de PHP poderão ajudá-lo a compreender melhor o que está sendo feito. A cada código inserido, eu farei uma breve explicação sobre o seu funcionamento. Isso o ajudará a entender o que está sendo feito. Melhor ainda, fará com que você aprenda um pouco sobre o funcionamento de uma das funções da biblioteca do Wordpress. Vamos ao código?

Primeiro passo: separando o joio do trigo

Suponhando que você já esteja com o arquivo comments.php aberto em seu editor, procure o código a seguir:

<?php foreach ($comments as $comment) : ?>

Cole o código abaixo logo após o código anterior:

<?php $comment_type = get_comment_type(); ?>
<?php if($comment_type == 'comment') { ?>

No PHP (que é a linguagem de programação usada no Wordpress), o comando foreach varre os dados de cada linha de um array. Nesse caso, a variável $comments é o nosso array e traz consigo todas as informações referentes a todos os comentários e trackbacks do respectivo post armazenados no banco de dados. A variável $comment traz as informações de cada linha armazenada na variável $comments. $comment também é um array e traz consigo dados como o nome do autor do comentário, o texto do comentário, o tipo de comentário, dentre outras informações. E é exatamente o tipo de comentário que precisamos identificar para separar comentários e trackbacks.

Precisaremos utilizar umas das funções de comentários para identificar o tipo de comentário: a função get_comment_type(). Como o próprio nome diz, ela identifica o tipo de comentário. Para utilizá-la, é necessário que ela seja chamada dentro de um loop. Em nosso caso, o loop é o foreach, mas existem outros tipos de loop.

A variável $comment_type irá armazenar o tipo de comentário presente na variável $comment, cada vez que o loop for executado, para que possamos comparar posteriormente e, consequentemente, filtrar e mostrar somente os comentários.

Para finalizar, vá até o final do arquivo comments.php e localize o código a seguir:

<?php endforeach; /* end for each comment */ ?>

Coloque o código abaixo antes do código acima:

<?php } else { $trackback = true; } ?>

No primeiro código, é uma instrução que fecha o bloco do loop foreach. Essa uma maneira mais legível de fechar um bloco, que também pode ser feita utilizando-se chaves.

No segundo código, o valor true (verdadeiro) é atribuído a variável $trackback. A razão pela qual isso é feito é simples: se o post em questão só possuir comentários, a variável $trackback nunca receberá o valor true. Posteriormente, essa variável será responsável por verificar a existência de trackbacks (e pingbacks) e fará com que o Wordpress gere o código necessário para mostrá-los. Resumindo, se houver trackbacks, o Wordpress irá pegar os dados e mostrar para o visitante. Do contrário, nada será mostrado (ou você poderá mostrar uma mensagem informando ao visitantes que não há trackbacks e pingbacks). É exatamente isso que faremos a seguir.

Segundo passo: Mostrando trackbacks e pingbacks

Para finalizar você precisa escrever o código que irá mostrar os trackbacks e pingbacks para seu visitante. Este mesmo código irá omitir essa informação caso não haja trackbacks e pingbacks. Se você preferir, como foi dito anteriormente, você poderá mostrar uma simples mensagem notificando o visitante que não há trackbacks e pingbacks. Você é quem decide.

Localize o código a seguir:

<?php else : // this is displayed if there are no comments so far ?>

Coloque o código abaixo antes do código acima:

<?php if ($trackback == true) : ?>
<h2>Trackbacks</h2>
<ul id="trackbacks"%gt;<?php foreach ($comments as $comment) : ?>
<?php $comment_type = get_comment_type(); ?>
<?php if($comment_type != 'comment') : ?>
<?php comment_author_link() ?>
<?php endif; ?>
<?php endforeach; ?></ul>
<?php endif; ?>

Observe que o código acima é muito parecido com o código que foi criado anteriormente para mostrar os comentários. A diferença está na linha que checa o tipo de comentário armazenado na variável $comment_type:

<?php $comment_type = get_comment_type(); ?>
<?php if($comment_type != 'comment') { ?>

Se o valor da variável $comment_type não for comment, mostre os dados, ou seja, mostre os trackbacks e pingbacks.

Se você quiser colocar a lista de trackbacks e pingbacks antes dos comentários, coloque o código anterior logo após o código a seguir:

<h2 id="comments">
<?php comments_number('No Responses', 'One Response', '% Responses' );?> to “< ?php the_title(); ?>”
</h2>

Passo três: salvando o arquivo e checando as mudanças

Para finalizar de vez, salve o arquivo, vá até um dos posts de seu blog e veja os comentários e trackbacks/pingbacks listados separadamente.

Atenção: se você usa o plugin WP-Cache ou similar, será necessário zerar o cache do seu navegador.

Dicas para Wordpress - Parte II

Filed Under (Artigos, Tutoriais, Wordpress) by Cadu de Castro Alves on 08-02-2008

Este artigo é uma tradução do artigo Wordpress Tips Part 2, que foi escrito no site WPDesigner.com por Milo, dono do site 3OneSeven.com.

Dica 6: Adicione Gravatares sem usar plugins

  1. Abra seu arquivo de template de comentários e procure a linha abaixo:
    <li class="<?php echo $oddcomment; ?>" id="comment-<?php comment_ID() ?>"></li>
  2. Depois dessa linha, adicione este código.
  3. Crie uma imagem para ser exibida como padrão quando um gravatar não existir, coloque-a em seu servidor e coloque o caminha para esta imagem no código anterior.

Dica 7: Adicione um microblog ao seu site

  1. Defina a categoria desejada (por exemplo: microblog) ou escolha uma já existente.
  2. Adicione o código abaixo em seu arquivo functions.php:
    <?php
    function asidesFilter($query) {
        if($query->is_feed || $query->is_home || $query->is_ search) {
            $query->set('cat', '-17');
        }
        return $query;
    }
    add_filter('pre_get_posts', 'asidesFilter');
    ?>
    

    17 é o número do ID da categoria criada. O número de sua categoria pode ser diferente. Confira o ID de sua categoria acessando o página de gerenciamento de categorias no painel administrativo do Wordpress.

  3. Adicione o código a seguir em seu arquivo sidebar.php:

    TITLE RSS

    <?php query_posts(’cat=17&showposts=4′); ?> <?php if(have_posts()) : ?> <?php while(have_posts()) : the_post(); ?>
    <?php the_content(’Continue reading this article’); ?>
    <?php endwhile; ?> Archives <?php else : ?> Sorry, the sideblog is having a little trouble. <?php endif; ?>

Dica 8: Personalizando o link Leia Mais

  1. Abra o arquivo index.php ou home.php e procure a linha abaixo:
    <?php the_content(__('Leia mais')); ?>
  2. Substitua-a pelo código a seguir:
    < ?php the_content('Continue lendo ' . the_title('','',false), 0); ?>

Dica 9: Personalizando o link de Comentários

  1. Abra os arquivos index.php, archive.php e home.php e procure a linha abaixo:
    <?php comments_popup_link('Leave a Comment', '1 Comment', '% Comments'); ?>
  2. Substitua-a pelo código a seguir:
    <?php comments_popup_link(__('Nenhum comentário em ' . the_title('','',false)), __('Um comentário em ' . the_title('','',false)), __('% comentários em '. the_title('','',false))); ?>

Dica 10: Personalize a tela de login do Wordpress

  1. Baixe os arquivos login-bkg-tile.gif e login-bkg.bottom.gif da pasta /wp-admin/images/
  2. Crie duas imagens com as mesmas altura e largura
  3. Salve-as usando o mesmo nome e a mesma extensão (.gif). Claro que você pode usar outras extensões (como .png e .jpg), mas você deverá editar o arquivo admin.css apontando para as imagens com as respectivas extensões.
  4. Suba os arquivos para a pasta /wp-admin/images

Dicas para Wordpress - Parte I

Filed Under (Artigos, Tutoriais, Wordpress) by Cadu de Castro Alves on 08-02-2008

Este artigo é uma tradução do artigo Wordpress Tips Part 1, que foi escrito no site WPDesigner.com por Milo, dono do site 3OneSeven.com.

Dica 1

NUNCA use o código abaixo no arquivo search.php:

<?php echo $_SERVER ['PHP_SELF']; ?>

Ele pode permitir que pessoas façam buscas dentro do seu servidor. Substitua-o pelo seguinte código:

<?php bloginfo('home'); ?>

Dica 2

Outro código normalmente usado no título do site ou nos templates de busca:

<?php echo $s; ?>

Este código permite que sejam inseridos códigos maliciosos. Substitua-o pelo seguinte código:

<?php echo wp_specialchars($s, 1); ?>

Dica 3

  • NUNCA use o tema padrão Kubrik, pois ele contém uma falha de segurança. O arquivo afetado é /themes?page=functions.php, que corresponde a seção "Imagem de topo e cor" do tema padrão Kubrik.
  • Veja a explicação completa aqui. (em inglês)
  • Finalizando, alguns temas utilizam as funções de configuração de cabeçalho do tema Kubrik. Examine cada tema cuidadosamente, pois eles podem possuir as mesmas vulnerabilidades.

Antes de fazer quaisquer modificações, faça uma cópia dos arquivos existentes. Ou melhor, teste-os em seu servidor local ou em seu servidor de testes.

Dica 4

Alguns sites utilizam um script que permite mudar o visual da página. Ele é conhecido como Style Switcher. Veja como implementá-lo facilmente.

  1. Baixe este arquivo JavaScript
  2. Coloque este arquivo na pasta JS dentro da pasta de seu tema. Caso ela não exista, crie-a
  3. Faça uma cópia do arquivo CSS de seu tema e renomeie-o para style2.css
  4. Coloque o código JavaScript em seu arquivo header.php:
    <script src="<?php bloginfo('template_directory'); ?>/js/ style-switch.js" type="text/javascript"></script>
    
  5. Coloque os dois arquivos CSS em seu arquivo header.php:
    Estilos: #000 | #fff

Dica 5

Bloqueie o acesso dos robôs de busca a sua página de arquivos (archives.php) para prevenir a indexação do conteúdo:

<?php if(is_archive()) { ?>
<meta name="robots" content="noindex"></meta>
<?php } ?>

Coloque o código acima em qualquer lugar em seu arquivo header.php ANTES de fechar a tag head.

O que vem por aí?

Na segunda parte das dicas do Milo, você irá ver como adicionar Gravatares sem uso de plugins, adicionar um microblog, customizar os links leia mais, customizar os links para comentários e customizar a tela de login do Wordpress.