Como criar um modelo de página central de comentários no WordPress

Uma maneira de aumentar o envolvimento dos visitantes é recompensar seus comentários, exibindo-os em seu site. Além disso, você também pode destacar os principais comentadores, vinculando-os ao site deles no processo. Aqui, criaremos um modelo de página dedicado para exibir esses comentários e comentaristas em um só lugar.


Em resumo, este tutorial ensinará como:

  1. criar um modelo de página,
  2. use consultas SQL no seu código para buscar comentários com parâmetros variáveis,
  3. crie uma seção da página visível apenas pelo administrador,
  4. adicionar suporte para um plug-in relacionado a comentários.

Criando um modelo de página

A maneira mais fácil de criar um modelo de página é abrir o arquivo page.php no seu tema, que será mais ou menos assim:

<?php get_header (); ?>

<?php if (have_posts ()): while (have_posts ()): the_post (); ?>

<?php the_title (); ?>

<?php the_content (); ?>

<?php comments_template (); ?>
<?php endtime; fim se; ?>

<?php get_sidebar (); ?>
<?php get_footer (); ?>

Copie e cole o conteúdo de page.php e adicione-o ao topo:

<?php
/ *
Nome do modelo: Central de comentários
* /
?>

E salve. Não há regras reais para nomear um arquivo de modelo de página, mas é uma boa ideia usar um prefixo para torná-lo reconhecível, como “pt-comment-central.php”. Não adicionamos nada a este modelo de página, mas ele está em funcionamento e pode ser selecionado na área de criação de novo painel de página.

Buscando Comentários

Para este modelo de página, apresentaremos quatro aspectos diferentes dos comentários:

  • comentários recentes,
  • Trackbacks / Pingbacks recentes,
  • Principais comentadores,
  • Posts Mais Comentados,

Primeiro, vamos fazer comentários recentes:

comentários recentes

    <?php
    $ max = 7; // número do item a ser obtido
    global $ wpdb;
    $ sql = "SELECT c. *, P.post_title FROM $ wpdb->comentários c INNER JOIN $ wpdb->posts p ON (c.comment_post_id = p.ID) WHERE comment_approved = ‘1’ AND comment_type não está em (‘trackback’, ‘pingback’) ORDER BY comment_date DESC LIMIT $ max";
    $ resultados = $ wpdb->get_results ($ sql);

    $ template = ‘% g %a em % pt‘;

    $ echoed = 0;
    foreach ($ resultados como $ row) {
    $ tags = array (‘% ct’, ‘% cd’, ‘% g’, ‘% pt’, ‘% pu’, ‘% au’, ‘% an’, ‘% cid’);
    $ substituições = matriz ($ row->comment_title, $ row->comment_date, get_avatar ($ row->comment_author_email, ’32 ‘), $ row->post_title, get_permalink ($ row->comment_post_ID), $ row->comment_author_url, $ row->comment_author, $ row->comment_ID);
    eco ‘

  • ‘ str_replace ($ tags, $ substituições, $ template). “
  • ‘;
    $ echoed = 1;
    }
    if ($ echoed == 0)
    eco ‘

  • Nenhum comentário encontrado.
  • ‘;
    ?>

A consulta SQL solicita todos os comentários aprovados classificados por data (mais recente primeiro). $ max é onde definimos a quantidade de comentários a receber, 7 no nosso caso. A saída do código acima será uma lista não ordenada de comentários recentes:

Lista de Comentários Recentes

Com um pouco de CSS, podemos corrigir isso para parecer melhor:

# cc-recent-comments li {
largura: 100%;
flutuar: esquerda;
tipo de estilo de lista: nenhum;
}

# cc-recent-comments li img {
flutuar: esquerda;
margem superior: -5px;
}

Lista de comentários recentes com CSS adequado

$ template determina como o texto real será escrito; isso é baseado no formato criado por Remix de comentários do WP, e você pode seguir esse link para saber mais sobre como personalizá-lo (procure por “tokens”).

Proximo é Pingbacks / Trackbacks recentes:

Pingbacks / Trackbacks recentes

    <?php
    $ sql = "SELECT c. *, P.post_title FROM $ wpdb->comentários c INNER JOIN $ wpdb->posts p ON (c.comment_post_id = p.ID) WHERE comment_approved = ‘1’ AND comment_type não está em (‘trackback’, ‘pingback’) ORDER BY comment_date DESC LIMIT $ max";
    $ resultados = $ wpdb->get_results ($ sql);

    $ template = ‘% g %a em % pt‘;

    $ echoed = 0;
    foreach ($ resultados como $ row) {
    $ tags = array (‘% ct’, ‘% cd’, ‘% g’, ‘% pt’, ‘% pu’, ‘% au’, ‘% an’, ‘% cid’);
    $ substituições = matriz ($ row->comment_title, $ row->comment_date, get_avatar ($ row->comment_author_email, ’32 ‘), $ row->post_title, get_permalink ($ row->comment_post_ID), $ row->comment_author_url, $ row->comment_author, $ row->comment_ID);
    eco ‘

  • ‘ str_replace ($ tags, $ substituições, $ template). “
  • ‘;
    $ echoed = 1;
    }
    if ($ echoed == 0)
    eco ‘

  • Nenhum comentário encontrado.
  • ‘;
    ?>

O código acima é muito semelhante ao que temos para Comentários Recentes, as únicas diferenças são que agora estamos pedindo comentários com ‘comment_type’ em ‘pingback’ / ‘trackback’, e o modelo também é um pouco diferente. Resultado:

Lista de Pingbacks e Trackbacks Recentes

Aqui está o código para Principais comentadores:

Principais comentadores

    <?php
    $ sql = "SELECT comment_author, comment_author_url, comment_author_email, count (comment_ID) como comment_count FROM $ wpdb->comments WHERE comment_approved = ‘1’ AND comment_type não está em (‘trackback’, ‘pingback’) GROUP BY comment_author, comment_author_url, comment_author_email ORDEM POR comment_count DESC LIMIT $ max";
    $ resultados = $ wpdb->get_results ($ sql);

    $ template = ‘% g% um (% c comentários) ‘;

    $ echoed = 0;
    foreach ($ resultados como $ row) {
    $ tags = array (‘% g’, ‘% au’, ‘% an’, ‘% c’);
    $ substituições = matriz (get_avatar ($ row->comment_author_email, ’32 ‘), $ row->comment_author_url, $ row->comment_author, $ row->Contagem de comentários);
    eco ‘

  • ‘ str_replace ($ tags, $ substituições, $ template). “
  • ‘;
    $ echoed = 1;
    }
    if ($ echoed == 0)
    eco ‘

  • Nenhum comentarista encontrado.
  • ‘;
    ?>

Nada muito alucinante lá. Observe o legal get_avatar () função, porém, que fornecerá o Gravatar para qualquer pessoa cujo endereço de email você especificar. Nesse caso, buscamos a imagem do avatar usando o endereço de e-mail do comentarista. Com o CSS semelhante ao que temos para comentários recentes, podemos obter este resultado:

# cc-top-commenters li {
largura: 100%;
flutuar: esquerda;
tipo de estilo de lista: nenhum;
}

# cc-top-commenters li img {
flutuar: esquerda;
margem superior: -5px;
}

Lista dos principais comentadores

Última é Posts Mais Comentados:

Posts Mais Comentados

    $ sql = "SELECT p. *, C.comment_count FROM $ wpdb->posts p INNER JOIN (SELECT comment_post_id, count (comment_ID) como comment_count de $ wpdb->comentários WHERE comment_approved = ‘1’ GROUP BY comment_post_id) c ON (c.comment_post_id = p.ID) ORDER BY c.comment_count DESC LIMIT $ max";
    $ resultados = $ wpdb->get_results ($ sql);

    $ template = ‘% pt (% c comentários) ‘;

    $ echoed = 0;
    foreach ($ resultados como $ row) {
    $ tags = array (‘% pd’, ‘% pt’, ‘% pu’, ‘% c’);
    $ substituições = matriz ($ row->post_date, $ row->post_title, get_permalink ($ row->ID), $ linha->Contagem de comentários);
    eco ‘

  • ‘ str_replace ($ tags, $ substituições, $ template). “
  • ‘;
    $ echoed = 1;
    }
    if ($ echoed == 0)
    eco ‘

  • Nenhum comentarista encontrado.
  • ‘;
    ?>

Lista das postagens mais comentadas

E é isso. Em seguida, adicionaremos um pouco de frescura extra, adicionando algumas coisas que somente o administrador pode ver.

Informações somente para administradores

Para mostrar coisas apenas para os administradores, podemos usar este trecho de código do WPCandy:

<?php
global $ user_ID;
if ($ user_ID):
if (current_user_can (‘level_10’)):
// coisas somente de administrador aqui.
fim se;
fim se; ?>

Agora, no Painel, podemos ver rapidamente os comentários totais, aprovados e pendentes de revisão e spam de um site. Vamos replicar isso para o nosso Modelo de página para um acesso mais fácil, somente para administradores:

<?php
$ num_comm = wp_count_comments ();
?>
Total de Comentários: /wp-admin/edit-comments.php? “><?php echo $ num_comm->total_comments; ?>
Aprovado: /wp-admin/edit-comments.php?comment_status=approved “><?php echo $ num_comm->aprovado; ?>
Moderado: /wp-admin/edit-comments.php?comment_status=moderated “><?php echo $ num_comm->moderado; ?>
Spam: /wp-admin/edit-comments.php?comment_status=spam “><?php echo $ num_comm->Spam; ?>

Admin

wp_count_comments () é uma função interessante que retorna uma matriz de vários números estatísticos de comentários. Também estamos adicionando links à respectiva área de administração de comentários.

Adicionando algumas faíscas

Por fim, suponha que você encontre plugins relacionados a comentários interessantes que deseja incorporar neste modelo de página. Em vez de adicionar mais códigos, vamos adicionar suporte a ele. Neste exemplo, irei com Faíscas de atividade O plug-in, que pode “exibir um gráfico de estilo” sparkline “” na barra lateral, indica atividades de publicação e / ou comentário. Parece ótimo para mim.

Geralmente, o arquivo readme.txt de um plug-in ensina como adicioná-lo aos seus arquivos de tema. No nosso caso, o código pode ser assim:

<?php
if (function_exists (‘activitysparks’)) {
activitysparks (matriz (‘conjunto de dados’ =>’legenda’, ‘height_px’ =>100, ‘width_px’ =>600, ‘período’ =>30, ‘ticks’ =>24));
}
?>

Plug-in ActivitySparks

function_exists () verifica se uma função específica está disponível; no nosso caso, a função activitysparks, que estará disponível se o plug-in tiver sido carregado e ativado. Se estiver lá, mostramos o gráfico. Caso contrário, nosso modelo de página não mostrará nada (mas ainda funcionará bem, sem erros).

Resultado e Exemplo

Um exemplo deste modelo de página é disponivel aqui. Ele usa os códigos que você vê aqui com algumas modificações, principalmente para manter a estrutura HTML consistente com o restante do site. O código inteiro para esse modelo de página está disponível em Pastebin.

Créditos e Leituras Adicionais

Like this post? Please share to your friends:
Adblock
detector
map