Venerdi, 12 Marzo 2010 

Posts Tagged ‘commenti’

Visualizzare i commenti di un post Wordpress dal più recente

Giovedì, Giugno 26th, 2008

Il mio primo post in assoluto, in questo laboratorio informatico di ricerca e sviuppo, è sostanzialmente inerente ad un piccolo codice PHP da inserire, se si desidera, nel theme template del proprio blog Wordpress. Il suo scopo è visualizzare i commenti dei post ordinati temporalmente dal più recente al più vecchio. Cioè a dire, l’ultimo commento inserito è visualizzato per primo.

Per default, infatti, Wordpress visualizza i commenti ordinati temporalmente dal primo inserito in poi, con il risultato che gli ultimi commenti di un post, soprattutto quando superano un certo numero, possono essere visualizzati solo dopo uno scrolling chilometrico della pagina del post.

Ordinare in maniera inversa la visualizzazione permette invece di leggere istantaneamente, perchè posti al top, i commenti inseriti per ultimi. Un qualcosa che può risultare comodo.

Per ottenere questo risultato, possiamo agire su uno dei nostri file relativi al tema scelto per la visualizzazione senza modificare il core kernel di Wordpress, in modo da svincolarci da qualsiasi aggiornamento e conservare il pieno controllo sulla modifica effettuata.

Ecco come fare:

  • editiamo il file comments.php del nostro tema Wordpress utilizzato.
  • localizziamo il posto esatto dove inserire il nostro codice, che è quello immediatamente prima del ciclo foreach di visualizzazione dei commenti di un post, cioè:
    1. <?php foreach ($comments as $comment) : ?>
  • inseriamo subito prima del codice sopra indicato il seguente codice PHP:
    1. <?php
    2. //
    3. // Ordino i commenti in ordine temporale dal piu’ giovane al piu’ vecchio
    4. //
    5. foreach ($comments as $key => $comment)
    6.            $data_gmt[$key] = $comment->comment_date_gmt;
    7. //
    8. array_multisort($data_gmt, SORT_DESC, SORT_STRING, $comments);
    9. ?>
  • Il gioco è fatto! Da questo momento in poi, i commenti di tutti i post verranno visualizzati ordinati dal più recente e progressivamente a scendere verso il più vecchio.

Due parole finali sul semplice trucco utilizzato: i commenti sono sostanzialmente caricati in Wordpress come un array di righe ( $comments ), in cui ogni riga è un commento ( $comment ); un commento ha a corredo diversi campi che gli sono peculiari, e tra essi c’è quello che ben si presta al nostro scopo: il campo comment_date_gmt. Di fatto, questo campo è un datetime nella forma YYYYMMDD HH:MM:SS; vedremo in un successivo post perchè questa sintassi si presta meravigliosamente agli ordinamenti temporali.

La funzione array_multisort è una funzione PHP davvero potente che ordina array multipli o multi-dimensionali, per la quale invito a leggere la pagina di manuale relativa sul sito PHP. Proprio da questa pagina ho tratto spunto per la creazione di questo piccolo codice.

Chiudi
Invia per E-mail