SummArg | Cursos y recursos para webmasters

17/04/2012

Mostrar todos los comentarios del usuario actual

Hace unos días comentabamos como construir un template para mostrar todas las entradas del usuario actual. Allí un comentador preguntaba como hacer para que en vez de entradas se muestren los comentarios que el usuario realizó en todo el blog.

Para ello, construimos una plantilla de página y la llamamos “Mis comentarios”. Luego habremos de asignarla a una página.

<?php
 /*
 Template Name: Mis comentarios
 */
 ?>

Dentro de la maquetación de la página, colocamos el siguiente código:

<?
 if ( is_user_logged_in() ):
 global $current_user;
 get_currentuserinfo();
 endif;
 $querystr = "
 SELECT comment_ID, comment_post_ID, post_title, comment_content
 FROM $wpdb->comments, $wpdb->posts
 WHERE user_id = $current_user->ID
 AND comment_post_id = ID
 AND comment_approved = 1
 ORDER BY comment_ID DESC
 ";
 $comments_array = $wpdb->get_results($querystr, OBJECT);
 if ($comments_array): ?>
 <h2>Mis comentarios </h2>
 <ul>
 <? foreach ($comments_array as $comment):
 setup_postdata($comment);
 echo "<li><a href='". get_bloginfo('url') ."/?p=".$comment->comment_post_ID."'>Comentado en ". $comment->post_title. "</a><br />". $comment->comment_content . "</li>";
 endforeach; ?>
 </ul>
 <? endif; ?>

Con ello obtendremos una lista con el título de la entrada en la que el usuario comentó (y su correspondiente link), y el texto del comentario realizado.

Dejar un comentario