![]() |
« Tutoriales « BlogArtículosDownloadsCómo listar todos los comentarios en una página de WordPressJueves, 10 de Diciembre, 2009 |
Acerca de
Soy Sergio Nouvel, diseñador y consultor Web. Escribo sobre Web, cultura y tecnología, así como artículos y tutoriales para desarrolladores Web. Más... Me las tuve que ingeniar con esto para ayudar a un amigo en problemas, que necesitaba una página de su sitio WordPress que listara todos los comentarios realizados en todas las entradas, ordenados por fecha. Buscando inspiración por aquà y por allá, y probando un poco di con la siguiente solución. Crear la plantilla de página en el temaEn mi caso copié page.php desde la carpeta de mi tema y le añadà lo siguiente para que fuese reconocida como plantilla de página por WordPress: <?php /* Template Name: Comment list */ ?> Respete los saltos de lÃnea, en ciertos servidores puede traerle problemas si no lo hace. Insertar el códigoA continuación, reemplace lo que usualmente es el Loop por el siguiente código (o insértelo donde prefiera, en realidad): <?php
/* llamada a la base de datos */
$numcomms = $wpdb->get_results("SELECT comment_id,
comment_author,comment_date,comment_content FROM
$wpdb->comments WHERE comment_approved = '1'
ORDER BY comment_id DESC");
/* loop que entrega el formato para cada comentario */
foreach ($numcomms as $com){
$autor = $com->comment_author;
$contenido = $com->comment_content;
$fecha = $com->comment_date;
?>
<div>
<h3><?php echo $autor; ?></h3>
<p><?php echo $contenido; ?></p>
<p><em>Publicado el <?php echo $fecha; ?></em></p>
</div>
<?php }
?>
Explico un poco. Lo primero es la llamada a la base de datos de los comentarios usando el objeto $wpdb, desde donde extraeremos el ID, el autor, la fecha y el contenido de cada comentario. Esto entrega una array (matriz, arreglo) que luego vamos explorando elemento a elemento con el bucle foreach. Recogemos la información obtenida de la base de datos en unas variables, que luego usamos en un formato muy sencillo para mostrar nombre, contenido y fecha (aconsejo no mostrar e-mail, IP u otra info sensible). Aplicar la plantilla a una páginaPara terminar, es necesario crear una página (o editar una ya existente) y aplicarle la plantilla llamada “Comment list”. En lugar del tÃtulo y las cosas normales, se verá un (laaargo) listado con todos los comentarios hechos en todos los posts de tu sitio. Eso serÃa. Es bien básico (por ejemplo, no informa del post de procedencia del comentario), pero seguro ustedes tomarán esto para hacer versiones mejoradas. Siéntanse libres de copiar, pegar, linkear, publicar donde se les antoje. Una prueba, casi esquelética, de este código puede verse acá. Cualquier cosa, a los comentarios. Saludos! Comenta. |
|