10. Impostare e customizzare area commenti

Registrare area commenti sotto l’articolo

Mi trovo nella pagina single.php

Aggiungo la seguente funzione nel punto in cui voglio mostrare l’area commenti. Per usabilità subito dopo l’articolo, in fondo pagina.

       <!–commenti–>
            <?php comments_template(); ?>

creo nuova pagina comments.php

copiamo e incolliamo il codice dalla pagina comments.php di un tema preimpostato di default di WP.

Modifichiamo l’intestazione sostituendo i nomi corretti io ad esempio userò Manoz

/**
* The template for displaying comments
*
* This is the template that displays the area of the page that contains both the current comments
* and the comment form.
*
* @link https://developer.wordpress.org/themes/basics/template-hierarchy/
*
* @package WordPress
* @subpackage Manoz Theme
* @since Manoz 1.0
* @version Manoz 1.0
*/
Riprendendo ovviamente dal foglio di stile le stesse intestazioni, nomi etc
Se non è presente molto importante aggiungere la voce Text Domain: 
che poi sarà il parametro che andrà a pescare il nostro comments.php
/*
Theme Name: Manoz Theme
Theme URI: https://barrettasalvatore.it/manoz
Author: Salvatore Barretta
Author URI: https://barrettasalvatore.it
Description: My first theme Bootstrap for WordPress
Version: 1.0
Theme Domain: Manoz
Text Domain: manoz
*/
possiamo sistemare lo stile lavorando sulle seguenti classi
/*COMMENT AREA*/
textarea#comment{
width: 100%!important;
}
input#submit{
width: 100%;
color: #fff;
font-size: 18px;
background-color: black;
text-transform: uppercase;
padding: 1rem;
}
#author{
width: 100%;
}
#email{
width: 100%;
}
#url{
width: 100%;
}
p.comment-form-cookies-consent{
font-size: 10px;
}
Facoltativo:

a questo punto già funziona tutto, se vogliamo possiamo aggiungere questa funzione al file functions.php nella sezione della funzione carica scripts.

/* FUNZIONE PER CARICARE STANDARD DI WP PER LA REPLICA COMMENTI migliora usabilità */

if(is_singular())wp_enqueue_script(‘comment-reply’);

Configurazione e customizzazione dell’area commenti

comment_form()

Per lavorare invece sulla customizzazone dell’area commenti form, come ad esempio i testi delle sezioni input etc.. dobbiamo lavorare sulla seguente funzione fondamentale:

<?phpcomment_form();?>
La maggior parte delle stringhe e dei campi modulo può essere controllata tramite l’array $ args passato alla funzione, mentre puoi anche scegliere di utilizzare il filtro ‘comment_form_default_fields’ per modificare l’array di campi predefiniti se desideri aggiungerne uno nuovo o rimuoverlo un singolo campo.
Per cui andiamo nel file comments.php e dentro <?phpcomment_form();?>
(utilizziamo la variabile $args perchè è uno standard per wp) scriviamo questo array:
<?php
$args = array(
                                      ‘label_submit’ => ‘Invia’,
                                      ‘class_submit’=> ‘btn btn-primary’,
                                      ‘title_reply’=> ‘Vuoi Commentare?’,
                                      ‘comment_field’ => ‘<div class=”form-group”>
                                                                           <label for=”comment”>Commento</label>
                                                                           <textarea class=”form-control” rows=8>
                                                                           </textarea>
                                                                           </div>’
);
comment_form($args);
?>
all’interno della variabile args andiamo a richiamare uno specifico array
creo un’altra variabile la chiamo fields (che servirà per gestire gli aspetti dei campi del form )
e dentro la variabile args richiamo fields di modo che la funzione comment_form quando utilizza il parametro args, includa cosi anche l’array fields.
     <?php
        $fields = array();
        $args = array(
            ‘fields’ => $fields,
            ‘label_submit’ => ‘Invia’,
            ‘class_submit’=> ‘btn btn-primary’,
            ‘title_reply’=> ‘Vuoi Commentare?’,
            ‘comment_field’ => ‘<div class=”form-group”>
                                    <label for=”comment”>Commento</label>
                                    <textarea class=”form-control” rows=8>
                                    </textarea>
                                </div>’
        );
        comment_form($args);?>
a questo punto se facciamo un refresh della pagina, nella sezione commenti dovrebbe sparire la formattazione standard di WP sotto la textarea, dove di solito c’è il campo nome, email e sitoweb.
Ora siamo liberi di personalizzare quei fields , quei campi.
  $fields = array(
        ‘author’ => ‘<div class=”form-group”>
                        <input type=”text” class=”form-control” placeholder=”Nome*” required=”required”>
                        </div>’,
        ‘email’ =>  ‘<div class=”form-group”>
                        <input type=”email” class=”form-control” placeholder=”Email*” required=”required”>
                        </div>’,
        ‘url’ =>     ‘<div class=”form-group”>
                        <input type=”url” class=”form-control” placeholder=”Sito Web” >
                        </div>’
    );

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *