É hora de adicionar uma resposta de comentário. Comentários do WordPress – design de aparência completo

WordPress possui diversos tipos de conteúdo como posts, páginas, comentários. WordPress é uma plataforma muito flexível que permite personalizar o conteúdo básico de acordo com o seu site. Você pode alterar a aparência e a funcionalidade. Neste tutorial mostraremos como alterar o comportamento e a aparência dos comentários em um site WordPress.

Etapa 1. Compreender a função comment_form e seus argumentos

Vamos dar uma olhada na função comment_form do WordPress. É responsável por exibir o formulário de comentários que aparece na página ou postagem. A chamada para esta função pode ser encontrada principalmente no arquivo comments.php na pasta do tema. Este arquivo está incluído em vários locais, por exemplo nos arquivos single.php e page.php, diretamente ou através de uma chamada à função comments_template.

A descrição da função pode ser encontrada no códice do WordPress.

Se você usar a função comment_form para exibir um formulário, ele será renderizado usando os parâmetros padrão e conterá campos como nome, email (ambos os campos são obrigatórios), site e conteúdo do comentário. No tema padrão Twenty Eleven, o formulário ficará assim.

Alguns argumentos importantes para a função comment_form:

  • campos - você pode usá-lo para controlar a exibição de campos no formulário de comentários.
  • comment_notes_before e comment_notes_after - usados ​​para exibir informações antes e depois do formulário.
  • title_reply - usado para alterar o título da resposta, cujo padrão é ‘Deixar uma resposta’.
  • label_submit - usado para alterar o texto no botão de envio de comentários.
Etapa 2. Personalize o formulário de comentários usando a função comment_form

Agora vamos configurar nosso formulário de comentários passando argumentos para a função comment_form.

Caso precisemos customizar os campos do formulário de comentários, precisamos passar uma lista deles para a função comment_form. Por padrão, a função usa a seguinte lista de campos:

$campos = array("autor" => "

" . "" . __("Nome") . " " . ($req ? "*" : "") . "

", "e-mail" => " ", "URL" => "

" . __("Local na rede Internet") . "" . "

",);

Se precisarmos remover um campo, por exemplo website , precisamos simplesmente excluí-lo do array e passar o array para a função comment_form.

$comentar = wp_get_current_commenter(); $req = get_option("require_name_email"); $aria_req = ($req ? " aria-required="true"" : ""); $campos = array("autor" => "

" . "" . __("Nome") . " " . ($req ? "*" : "") . "

", "e-mail" => " ",); $comments_args = array("campos" => $fields); comment_form($comments_args);

Além disso, também mudaremos o nome do formulário para ‘Por favor, dê-nos o seu valioso comentário’, e a inscrição no botão para ‘Enviar meu comentário’.

Para completar a tarefa, passamos os seguintes argumentos para a função comment_form:

$comentar = wp_get_current_commenter(); $req = get_option("require_name_email"); $aria_req = ($req ? " aria-required="true"" : ""); $campos = array("autor" => "

" . "" . __("Nome") . " " . ($req ? "*" : "") . "

", "e-mail" => " ",); $comments_args = array("fields" => $fields, "title_reply"=>"Por favor, dê-nos seu valioso comentário", "label_submit" => "Enviar meu comentário"); comment_form($comments_args);

Agora o formulário de comentários ficará assim:

Etapa 3. Removendo campos de um formulário usando um gancho

Além disso, o formulário de comentários do WordPress pode ser modificado usando ganchos e filtros. Esta configuração pode ser especialmente útil ao trabalhar com um plugin, quando você precisa personalizar vários elementos, mas não alterar os arquivos do tema. Filtro para adicionar ou remover campos do formulário - ‘ comment_form_default_fields ‘

Vamos remover o campo URL usando um filtro. O código acima pode ser usado em um plugin ou no arquivo functions.php do tema ativo.

Função remove_comment_fields($fields) ( unset($fields["url"]); return $fields; ) add_filter("comment_form_default_fields","remove_comment_fields");

Etapa 4. Adicione dados ao formulário de comentários usando um gancho

Podemos adicionar campos ao formulário usando o filtro ‘comment_form_default_fields’. Vamos adicionar o campo idade do autor usando um filtro e salvar este campo com dados adicionais e exibi-lo no comentário.

Adicione um campo como este:

Função add_comment_fields($fields) ( $fields["idade"] = "

" . __("Idade") . "" . "

"; return $fields; ) add_filter("comment_form_default_fields","add_comment_fields");

#respond .comment-form-author rótulo, #respond .comment-form-email rótulo, #respond .comment-form-url rótulo, #respond .comment-form-age rótulo, #respond .comment-form-comment rótulo ( fundo: #eee; -webkit-box-shadow: 1px 2px 2px rgba (204.204.204.0,8); -moz-box-shadow: 1px 2px 2px rgba (204.204.204.0,8); : 13px; largura mínima: 4px 10px;

Agora nosso formulário de comentários ficará assim:

A idade agora é armazenada como informação adicional. Você precisa usar o gancho em ‘comment_post’:

Função add_comment_meta_values($comment_id) ( if(isset($_POST["age"])) ( $age = wp_filter_nohtml_kses($_POST["age"]); add_comment_meta($comment_id, "age", $age, false); ) ) add_action("comment_post", "add_comment_meta_values", 1);

Depois que os dados forem salvos, eles poderão ser exibidos como um comentário como este:

Etapa 5. Configurando comentários para tipos de postagem específicos

Às vezes você deseja usar campos de comentários apenas para determinados tipos de postagens. Vamos alterar o código para exibir o campo idade apenas para um tipo de registro contábil:

Função add_comment_fields($fields) ( if(is_singular("livros")) ( $fields["idade"] = "

" . __("Idade") . "" . "

"; ) return $fields; ) add_filter("comment_form_default_fields","add_comment_fields");

Etapa 6. Crie uma função de retorno de chamada para exibir comentários

A função wp_list_comments é usada para exibir comentários nas postagens. No código do WordPress a função é descrita em detalhes.

wp_list_comments possui um argumento 'callback' no qual você pode definir uma função que é chamada quando um comentário é exibido.

No tema Twenty Eleven no arquivo comments.php você pode encontrar a linha:

Wp_list_comments(array("callback" => "vinte e onze_comment"));

Vamos mudar para:

Wp_list_comments(array("callback" => "my_comments_callback"));

A função my_comments_callback será chamada para cada postagem.

Etapa 7: comentários de estilo

Agora vamos mudar um pouco o estilo do comentário. Simplesmente exibiremos o conteúdo da postagem e o campo de idade que adicionamos anteriormente. Também mudaremos a cor de fundo dos comentários.

Código de função ‘my_comments_callback’:

Função my_comments_callback($comment, $args, $profundidade) ( $GLOBALS["comment"] = $comment; ?>

Para obter uma descrição e argumentos aceitos da função comments_template() e outras mencionadas no artigo, consulte o WordPress Codex.

Preparando o modelo

Vamos tentar entender os modelos de comentários do WP e criar nosso próprio arquivo para exibir comentários em postagens e páginas de blogs. Como exemplos de referência, você pode usar modelos de temas padrão do WordPress. Vamos criar um novo documento em qualquer editor de texto, chamá-lo de comments.php e começar a editar.

  • Em princípio, você pode nomear o arquivo como quiser e, em seguida, escrever o caminho para esse arquivo em comments_template(), mas é melhor manter o nome padrão
  • A propósito, você também pode editar o arquivo no painel de administração do WP.
  • É melhor, claro, escrever código e testar imediatamente seu efeito em seu blog ou em um servidor local.

No WordPress é possível desabilitar comentários para postagens individuais, então antes de exibi-los você precisa verificar a “abertura”:

Este é um código wrapper para nossas ações futuras. Agora vamos preparar um contêiner para o bloco de comentários com uma classe ou identificador semanticamente correto (a classe é preferível, é claro):

Vamos escrever um título dentro para que seus leitores entendam que aqui há comentários e nada mais, a tag vai servir para isso:

"

Aqui indicamos uma das funções do WordPress - the_title(), o resultado da execução desta função será a saída do título do post ou página atual. Se não quiser exibir o título, você pode simplesmente escrever “Comentários do leitor”.

Em seguida, antes de exibir comentários, você precisa ter certeza de que eles existem, ou seja, verifique, se houver, exiba a lista completa, caso contrário você pode mostrar ao usuário algo como “”. Dessa forma, ficará claro para o visitante do seu post/página que ninguém escreveu nada ainda, e a frase motivadora “Você pode ser o primeiro” aumentará a probabilidade de ele escrever algo para você mais rapidamente.

Assim, após esta formulação do problema, fica claro que para implementação precisaremos de construções if/else e de uma função para exibir o número de comentários get_comments_number() . Se a função retornar 0 (zero), então exibimos “Nenhum comentário ainda...”, caso contrário “Comentários do leitor...”:

Ainda não há comentários, mas você pode ser o primeiro leitor a comentar o artigo "" As discussões estão encerradas para esta página

Saída de comentários

Ótimo, exibimos os títulos dependendo da presença ou ausência de comentários, agora é lógico exibir os próprios comentários - a função wp_list_comments() é responsável por isso. A função padrão agrupa todos os comentários em tags

  • , então você deve adicionar um wrapper com a classetribution.commentlist:

    wp_list_comments() usa uma série de argumentos que podem ser usados ​​para personalizar de forma flexível a exibição de comentários. Por exemplo, você pode alterar o tamanho do avatar, o texto da resposta dos comentários e outras configurações passando uma palavra-chave e um valor:

    $args = array("avatar_size" => 64, // tamanho do avatar 64*64px, padrão 32 "reply_text" => "Reply" // texto da resposta ao comentário "callback" => "my_comments" // função para gerar um tipo externo de comentário)

    O parâmetro callback merece consideração especial, que assume o valor do nome de uma função customizada para exibir um comentário. Com sua ajuda, você pode personalizar com flexibilidade a aparência de cada comentário. Esta é a aparência da função de saída padrão no arquivo comment-template.php:




     

    Pode ser útil ler: